繁体   English   中英

如何为嵌套json创建JSONObject

[英]How to create a JSONObject for nested json

我无法为嵌套json创建json对象。

我可以为基本json创建json对象。 我无法添加其他字段。

final JSONObject jsonObject = new JSONObject();
    try {

        jsonObject.put("name", "new name");
        jsonObject.put("description", "new election");

    } catch (JSONException e) {
        e.printStackTrace();
    }

这是我的json:

{
  "name": "string",
  "description": "string",
  "candidates": [
    "string"
  ],
  "ballotVisibility": "string",
  "voterListVisibility": true,
  "startingDate": "2019-07-05T20:09:23.311Z",
  "endingDate": "2019-07-05T20:09:23.311Z",
  "isInvite": true,
  "isRealTime": true,
  "votingAlgo": "string",
  "noVacancies": 0,
  "ballot": [
    {
      "voteBallot": "string",
      "voterEmail": "string"
    }
  ]
}

尝试这个:

final JSONObject jsonObject = new JSONObject();
    Map<String, String> map = new HashMap<>();
    map.put("voteBallot", "string");
    map.put("voterEmail", "string");
    try {

        jsonObject.put("name", "new name");
        jsonObject.put("description", "new election");
        jsonObject.put("candidates", new String[] {"new String"});
        jsonObject.put("ballotVisibility", "string");
        jsonObject.put("voterListVisibility", true);
        jsonObject.put("startingDate", LocalDateTime.now().atZone(ZoneOffset.UTC));
        jsonObject.put("ballot", new Map[]{map});
        System.out.println("jsonObject = " + jsonObject);
    } catch (JSONException e) {
        e.printStackTrace();
    }

这不是所有领域,而是所有希望帮助的不同类型。 输出:

{  
   "ballot":[  
      {  
         "voteBallot":"string",
         "voterEmail":"string"
      }
   ],
   "candidates":[  
      "new String"
   ],
   "ballotVisibility":"string",
   "name":"new name",
   "voterListVisibility":true,
   "description":"new election",
   "startingDate":"2019-07-05T22:34:58.750Z"
}

您只需要创建一个新的JSONObject然后使用新名称将其附加到父对象即可。 下面是附加ballot的示例:

JSONObject jsonObject = new JSONObject();
JSONObject ballot = new JSONObject();
ballot.put("voteBallot","string");
ballot.put("voterEmail","string");

jsonObject.put("name", "new name");
jsonObject.put("description", "new election");

jsonObject.put("ballot", ballot);  //Append the other JSONObject to the parent one

System.out.println(jsonObject.toString());

输出(具有某些格式):

{
"ballot":
     {
     "voteBallot":"string",
     "voterEmail":"string"
     },
 "name":"new name",
 "description":"new election"
}

您也可以改用JSONArray并以相同的方式附加它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM