txt.png
json.png
如上,该java程序依赖fastjson-1.2.53.jar包,将固定格式的txt(或其他格式)转换为json串,并存储与一个新的json文件中。
使用过程
要使用fastjson,首先要有一个bean对象
package test;
public class ClassA {
public String reason;
public int times;
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public int getTimes() {
return times;
}
public void setTimes(int times) {
this.times = times;
}
}
对象中的属性,就是将来转换成的json的key值。
主程序,含有main方法
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
//fastjson
import com.alibaba.fastjson.JSON;
public class Test {
public static void main(String[] args) throws IOException {
InputStreamReader ins = new InputStreamReader(new FileInputStream("H:\\test.txt"));
BufferedReader br = new BufferedReader(ins);
//存放bean对象
List tlist = new ArrayList();
//读取txt
String line = null;
List list = new ArrayList();
while((line = br.readLine()) != null) {
list.add(line);
}
br.close();
//txt的每一行相当于一条数据,split按空格作分隔符进行拆分。\\s+是正则表达式。
for (String str : list) {
String[] arrStr = str.split("\\s+");
ClassA classA = new ClassA();
classA.setReason(arrStr[0]);
classA.setTimes(Integer.parseInt(arrStr[1]));
tlist.add(classA);
}
//JSON.toJSONString()方法:将对象数组(JSON格式的字符串也可以)转换成JSON数据。
String json = JSON.toJSONString(tlist);
System.out.println(json);
//创建新文件
File txtToJson = new File("H:\\json1.json");
txtToJson.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(txtToJson));
out.write(json);
out.flush(); // 把缓存区内容压入文件
out.close(); // 最后记得关闭文件
}
}
总结
fastjosn还可以将其他类型的数据转成json串,也同样可以将json数据转换为实体对象。