簡體   English   中英

如何從Java中的JSON提取JSONArray和JSONObject

[英]How to extract JSONArray and JSONObject from a JSON in Java

如何從JSON提取JSON數組和JSON對象。

以下是輸入:

{
    "messageName": "ReportCard",
    "orgId": "Org1",
    "comment": true,
    "Fields": [{
       "objectId": "1234-56789-asdv",
       "fieldId": "1245-7852-dhjd"
    },
    {
       "objectId": "1234-56hgjgh789-hjjhj",
       "fieldId": "12sdf45-78sfg52-dfjhjd"
    }]
}

我想分別使用JSON Array和JSON Object,輸出應該像這樣:

JSONArray

"Fields":[{ "objectId": "1234-56789-asdv",
           "fieldId": "1245-7852-dhjd"},{
           "objectId": "1234-56hgjgh789-hjjhj",
           "fieldId": "12sdf45-78sfg52-dfjhjd"}]

和JSON Object應該像這樣:

{
  "messageName": "ReportCard",
        "orgId": "Org1",
        "comment": true
}

如果您知道Java JSON API,它就非常簡單

String jsonString="{
    "messageName": "ReportCard",
    "orgId": "Org1",
    "comment": true,
    "Fields": [{
       "objectId": "1234-56789-asdv",
       "fieldId": "1245-7852-dhjd"
    },
    {
       "objectId": "1234-56hgjgh789-hjjhj",
       "fieldId": "12sdf45-78sfg52-dfjhjd"
    }]
}"
JSONObject jObject= new JSONObject(jsonString);
JSONObject jo = new JSONObject(); //creating new Jobject
// putting data to JSONObject 
jo.put("messageName", jObject.getString("messageName").toString()); 
jo.put("orgId", jObject.getString("orgId").toString()); 
jo.put("comment", jObject.getString("comment").toString()); 

JSONArray Fields= jObject.getJSONArray("Fields");//extract field array
JSONArray ja = new JSONArray(); //creating new json array.
int Arraylength = Fields.length();
for(int i=0;i<Arraylength;i++)
{
    Map m = new LinkedHashMap(2); 
    JSONObject ArrayjObj = Fields.getJSONObject(i);
    m.put("objectId", ArrayjObj.getString("objectId").toString()); 
    m.put("fieldId", ArrayjObj.getString("fieldId").toString()); 
    // adding map to list 
    ja.add(m); 
 }
JSONObject fieldsObj = new JSONObject(); 
fieldsObj.put("Fields", ja); // Fields Array Created

對於JSON API參考

您可以將每個鍵的特定值提取到json對象中,然后放入單獨的json數組中

String strJSON =" {\"id\":\"12\",\"messageName\":\"ReportCard\" , \"Fields\":[{\"objectId\": \"1234-56789-asdv\", \"fieldId\": \"1245-7852-dhjd\"},{\"objectId\": \"1234-56hgjgh789-hjjhj\", \"fieldId\": \"12sdf45-78sfg52-dfjhjd\"}]   }";

 JSONArray ja = new JSONArray();
JSONObject jo1= new JSONObject();
JSONObject jo= new JSONObject(strJSON);
  ja=  jo.getJSONArray( "Fields");
jo1.put("messageName",jo.get(messageName));
jo1.put("orgId",jo.get(orgId));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM