如何在Java中从JSON中提取JSONArray和JSONObject



如何从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数组和JSON对象分开,输出应该像:

JSONArray

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

JSON对象应该像:

{
  "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));

最新更新