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

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

快來試試看吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM