固定格式TXT转json文件

txt.png
json.png

  如上,该java程序依赖fastjson-1.2.53.jar包,将固定格式的txt(或其他格式)转换为json串,并存储与一个新的json文件中。

使用过程

  1. 要使用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值。

  1. 主程序,含有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<ClassA> tlist = new ArrayList<ClassA>();

        //读取txt
        String line = null;
        List<String> list = new ArrayList<String>();
        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数据转换为实体对象。

参考:https://www.cnblogs.com/mabiao008/p/6168583.html
作者:mabiao008

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容