67,515
社区成员
发帖
与我相关
我的任务
分享
{"messageList": [
{
"matched": "编号",
"advice": "建议"
},
{
"01Matched": "12",
"01Advice": "你好"
},
{
"02Matched": "12",
"02Advice": "你好",
"03Matched": "13",
"03Advice": "你也好",
"04Matched": "14",
"04Advice": "他也好"
},
{
"04Matched": "14",
"04Advice": "他也好"
}
]
}
=============================================================
套用前几天看到贴吧大神的代码,简单的实现了一下;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.StringWriter;
import org.apache.log4j.Logger;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonTest1 {
private static final Logger logger = Logger.getLogger(JsonTest1.class);
@SuppressWarnings("resource")
public static void main(String[] args) {
logger.info("json方法测试开始");
try {
String file = null;
// 把json数据先放到4.txt文件中,然后通过创建缓冲读入文件流拿到4.txt文件数据
FileReader fileReader = new FileReader(new File("I:\\WorkSpace\\javapracticing\\java_practicing\\src\\com\\xwtech\\json\\4.txt"));
BufferedReader br = new BufferedReader(fileReader);
// 字符串生成器,存放从4.txt取到的数据,以便接下来用于jsonObject对象的接收
StringWriter sw = new StringWriter();
// 从读入流到字符串写出流的数据传输
String s;
while ((s = br.readLine()) != null) {
sw.append(s);
}
br.close();
// 通过控制台查看结果来测试是否写出成功
//System.out.println(sw.toString());
//System.out.println(targetString);
// 创建JsonObject对象,以便对json数据进行处理之后取自己想要的值
JSONObject jsonObject = new JSONObject();
JSONObject parseObject = JSON.parseObject(sw.toString());
// 新建一个字符串生成器,用于存放整理之后的数据,方便最后在控制台做输出测试
StringBuilder sb = new StringBuilder();
//把json数据一个一个拿到并赋给一个一个相应对象
//获取数组
JSONArray messageList = parseObject.getJSONArray("messageList");
//获取数组中第一个值 {"matched": "编号","advice": "建议"}
JSONObject jsonObject2 = messageList.getJSONObject(0);
//获取matched对应的值
String matched = jsonObject2.getString("matched");
//把拿到的一个又一个json值存放到字符串生成器sb中,以便之后用其输出测试
sb.append("messageList:==="+messageList+"\n");
sb.append("jsonObject2:==="+jsonObject2+"\n");
sb.append("matched:==="+matched+"\n");
//输出字符串生成器 sb,查看所取数据是否是想要数据
System.out.println(sb.toString());
logger.info("json方法结束");
} catch (Exception e) {
logger.error("出错了", e);
}
}
}
=========================================
测试结果:
- json方法测试开始
messageList:===[{"advice":"建议","matched":"编号"},{"01Advice":"你好","01Matched":"12"},{"02Advice":"你好","02Matched":"12","03Advice":"你也好","03Matched":"13","04Advice":"他也好","04Matched":"14"},{"04Advice":"他也好","04Matched":"14"}]
jsonObject2:==={"advice":"建议","matched":"编号"}
matched:===编号
- json方法结束
{
"matched": "编号",
"advice": "建议"
},
你是要取出这个吗?
JsonArray.getObject("matched")