java json txt_固定格式TXT转json文件

本文介绍了一个使用Java和Fastjson库将固定格式的TXT文件转换为JSON文件的过程。首先定义了一个Bean对象ClassA,然后读取TXT文件内容,将每行数据映射到Bean对象,最后通过Fastjson将对象列表转换为JSON字符串并写入新的JSON文件。
摘要由CSDN通过智能技术生成

3f1a49303b3d

txt.png

3f1a49303b3d

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数据转换为实体对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值