1. 程式人生 > >java解析json字串的應用

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資料正確的解析了出來。