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

标签 java arrays json

如何从 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,请参阅 this

关于java - 如何在 Java 中从 JSON 中提取 JSONArray 和 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53313265/

相关文章:

java - 为什么我的编译器不能转换它?

javascript - 从 Firebase 快照中获取项目数组

javascript - NodeJs中如何按 block 解析Json数据

json - 如何在 Druid 中格式化 TSV 文件

json - node.js 解析请求的 JSON

Java 使用 SimpleDateFormat 解析日期

对任意数量的整数求和的Java方法

java - 在ZK中,从其他ViewModel更改组件的属性

c++ - 如何为嵌套指针结构动态分配内存?

python - 从python中的n个子数组副本创建一个数组