如何为嵌套json创建JSONObject

时间:2019-07-05 20:16:37

标签: java json

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

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

SELECT * FROM numbers WHERE LEFT(Number, 5) = RIGHT(Number, 5)

这是我的json:

final JSONObject jsonObject = new JSONObject();
    try {

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

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

2 个答案:

答案 0 :(得分:0)

尝试一下:

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"
}

答案 1 :(得分:0)

您只需要创建一个新的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并以相同的方式附加它。