java解析json字串的應用
檔案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資料正確的解析了出來。