文件alarmPub.txt中存在如下json串
{
"data": [
{
"oriId": "oid",
"alarmObj": "alarm obj",
"alarmObjName": "alarm Obj Name",
"alarmLevel": "alarmLevel",
"alarmType": "alarmType",
"alarmStatus": "0",
"source": "1",
"absTime": "2015-02-05 22:22:10",
"comment": "comment"
},
{
"oriId": "oid1",
"alarmObj": "alarm obj1",
"alarmObjName": "alarm Obj Name1",
"alarmLevel": "alarmLevel1",
"alarmType": "alarmType1",
"alarmStatus": "01",
"source": "11",
"absTime": "2015-02-05 22:22:11",
"comment": "comment1"
}
]
}
这里需要注意的时候json格式一定要正确,不然无法正确解析!
笔者因为json格式问题,纠结了好久,最后请同事发现是json格式问题
百度“”json在线解析“,把json串放入其中校验, 会显示出绿色字体”正确json”即可。否则去检查json的问题,构造成符合json格式的json数据。
FileUtil util = new FileUtil();
String alarms = util.readFileByLines("alarmPub.txt");
通过文件工具类,以字符串的形式读取出来 文本文件中的数据
JSONArray jsonArray = JSONObject.fromObject(JSON.parse(alarms)).getJSONArray("data");
转化成JSONArray对象,
Object[] arrays = jsonArray.toArray();
通过JSONArray对象中的toARRAY()方法得到了个object数组。
变量数组
for(int i=0;i<arrays.length;i++){
System.out.println(JSONObject.fromObject(arrays[i]).get("alarmType"));
}
其中JSONObject.fromObject(arrays[i].get(key值)),是通过键名得到对应的值。这个困扰了我好久,后来发现小加上
JSONObject.fromObject包装起来,即可。
至此,json数据正确的解析了出来。