如何为json对象列表设置父级

时间:2018-05-30 06:17:02

标签: java json

我现在的json是,

gfsh> start server --name=SpringConfiguredServer --classpath=/file/system/path/to/spring-data-gemfire22.1.0.M3.jar --spring-xml-location=/classpath/to/your/spring-context.xml

我需要为上面的json对象列表设置父对象,如下所示,

[
    {
       "date":"2013-11-19",
       "time":"10:30",
    },
    {
       "date":"2013-11-19",
       "time":"12:20",
    }
 ]

以下代码对我不起作用,

"results":{[
             {
                "date":"2013-11-19",
                "time":"10:30",
             },
             {
                "date":"2013-11-19",
                "time":"12:20",
             }
          ]
    }

如何设置对象列表的父级? 请提供您的意见。

3 个答案:

答案 0 :(得分:1)

您可以在Java中使用JsonObject类进行设置。

例如你有这个JsonArray

[
    {
       "date":"2013-11-19",
       "time":"10:30",
    },
    {
       "date":"2013-11-19",
       "time":"12:20",
    }
 ]`

所以你需要从那个json数组结果创建JsonArray对象,然后创建另一个JsonObject来保存这个数组。如下所示

try{
   JSONArray arr = new JSONArray(<your json array string>);
   JSONObject root = new JSONObject();
   root.put("results", arr); //putting json array in root json object with results key.

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

如果你root.toString(),你会得到你想象的json。

希望这有帮助!

答案 1 :(得分:1)

你可以使用杰克逊。这是样本

    String s = "[\n" +
            "    {\n" +
            "       \"date\":\"2013-11-19\",\n" +
            "       \"time\":\"10:30\"\n" +
            "    },\n" +
            "    {\n" +
            "       \"date\":\"2013-11-19\",\n" +
            "       \"time\":\"12:20\"\n" +
            "    }\n" +
            " ]";

    ObjectMapper mapper = new ObjectMapper();
    JsonNode array = mapper.readTree(s);
    JsonNode result = mapper.createObjectNode().set("result", array);
    System.out.println(result);

ouptut是

{"result":[{"date":"2013-11-19","time":"10:30"},{"date":"2013-11-19","time":"12:20"}]}

答案 2 :(得分:0)

试试这个

    {      "results":[
         {
            "date":"2013-11-19",
            "time":"10:30",
         },
         {
            "date":"2013-11-19",
            "time":"12:20",
         }
      ]
}