1. 程式人生 > 其它 >JAVA中如何解析Json格式的字串

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>

我們需要用到依賴中的兩個類:JSONObjectJSONArray
具體程式碼如下:

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);//列印輸出
}

這樣我們就可以拿到我們需要的結果了:

快來試試看吧!