Java從String開始解析JSON


菜鳥教程的 JSON 教程鏈接:https://www.runoob.com/json/json-tutorial.html

一、JSON 格式簡析。

{
    "person_num": 1,
    "person_info": [{
        "body_parts": {
            "nose": {
                "x": 96.34375,
                "y": 101.53125
            },
            "right_knee": {
                "x": 89.6875,
                "y": 314.53125
            },
         "location": {
            "width": 91.40377044677734,
            "height": 354.7197875976562
        }
     }]        
}

  1. 對象在 {  } 大括號中

  2. 數組在 [  ] 中括號中

  3. key:value 值,中間用冒號隔開

二、將 String 類型的數據轉換為 JSON 格式數據

  需要導入幾個 jar 包,文件在以下鏈接中:

鏈接:https://pan.baidu.com/s/1SNMIPJal0-YKpsMqTnzjsg
提取碼:ezmb
復制這段內容后打開百度網盤手機App,操作更方便哦

   需要導入的類如下:

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

  String 類型數據轉換為 JSON 格式數據 代碼如下:

//result 是上方 JSON 數據的String 格式
String result = "{"person_num": 1,"person_info": [{"body_parts": {"nose": {"x": 96.34375,"y": 101.53125},"right_knee": {"x": 89.6875,"y": 314.53125},"location": {"width": 91.40377044677734,"height": 354.7197875976562}}]}"

JSONObject jsonObject = JSONObject.fromObject(result);//將String 類型數據轉換為 JSON 格式數據 

 

 三、將 JSON 中的數據提取出來

  代碼示例為上方提供的 JSON 格式數據(取出其中 "nose" 的數據)

   1. 取對象中的數組數據:("person_info" 對應的 JSON 值是數組類型)

JSONArray person_info = jsonObject.getJSONArray("person_info");

 

   2. 取數組中的對象:(取 person_info 中第一個數據,在上面的例子中 "person_info" 數組中有兩個數據:"body_parts" 和 "location" )

JSONObject body_parts = person_info.getJSONObject(0);

 

  3. 一個對象中有多個對象:

    是可以直接利用第 1 個示例中的方法調用,但是這里比較特殊的地方在於:"body_parts" 剛從數組中得到數據,還要進行轉化:

//由於 body_parts中還有JSONObject,因此還要將 body_parts取出來
body_parts = body_parts.getJSONObject("body_parts");
//得到鼻子的信息
JSONObject nose = body_parts.getJSONObject("nose");

 

       4. 得到 key-value值:(得到 "nose" 中的 x、y 值)

double nose_x = nose.getDouble("x");
double nose_y = nose.getDouble("y");

 

  后面就可以直接利用 JSON 中的數據了。


免責聲明!

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



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