JAVA中如何解析Json格式的字串
我們寫專案時有時候會接收一些json格式的資料,那麼我們該如何解析它們呢。
首先我們應該瞭解什麼是json:
json的語法規則:
- json會通過{}來儲存物件
- json通過[]來儲存陣列
- 資料會通過鍵值對的形式儲存
- 資料之間會用,隔開
例如
{"words_result":[{"words":"蘇E05EV85"}],"log_id":1416028548941363325,"words_result_num":1}
這個就是一段json格式的字串,當然,我們是要對結果進行解析,並不用知道這些具體代表什麼意思。這個字串總共有三組資料,第一組資料的值由[ ]包裹,可以得出它是一個數組格式,即使只有一條資料,後面的兩條就是普通的鍵值對格式了。
想要解析字串首先要下載一個依賴
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
我們需要用到依賴中的兩個類:JSONObject與JSONArray。
具體程式碼如下:
String result="{"words_result":[{"words":"蘇E05EV85"}],"log_id":1416028548941363325,"words_result_num":1}";
JSONObject root = new JSONObject().parseObject(result);// 將json格式的字串轉換成json
String value = root.getString("log_id");//定義一個字串,其值為根據json物件中的資料名解析出的其所對應的值
String value2 = root.getString("log_id");//重複上一步操作,得到相對應的值
//將結果列印輸出
System.out.println(value);//列印輸出
System.out.println(value2);//列印輸出
我們得到的結果為
由於第一項為陣列,所以需要用到JSONArray,實現如下
JSONArray Arr = root.getJSONArray("words_result");//根據json物件中陣列的名字解析出其所對應的值
for (int i = 0; i < Arr.size(); i++) {
JSONObject dataBean = (JSONObject) Arr.get(i);//得到陣列中對應下標對應的json物件
String plate = dataBean.getString("words");//根據json物件中的資料名解析出相應資料
System.out.println(plate);//列印輸出
}
這樣我們就可以拿到我們需要的結果了:
快來試試看吧!