将数组添加到没有键的json文件

时间:2016-11-30 10:23:03

标签: java arrays json

我必须制作一个JSON格式的文件,它必须如下所示:

xyz.json

[
    {
        "imagelist": "/oracle/public/oel6",
        "label": "test_higgs",
        "shape": "small",
        "name" : "/Compute-computecli1/computeadmin/",
        "networking" : {
            "eth0" : {
                    "ipnetwork" : "/Compute-computecli1/computeadmin/ipnet"
            }
        }
    }
]

应该在没有{}的JSON文件中添加数组,并且这些花括号必须在JSON数组中。

的代码
{
instances:[
        {
            "imagelist": "/oracle/public/oel6",
            "label": "test_higgs",
            "shape": "small",
            "name" : "/Compute-computecli1/computeadmin/",
            "networking" : {
                "eth0" : {
                        "ipnetwork" : "/Compute-computecli1/computeadmin/ipnet"
                }
            }
        }
    ]
}

是:

此代码将json数组作为值添加到"实例"键,但我想添加没有json键的json数组。

JsonObject ipnetwork = new JsonObject();
ipnetwork.addProperty("ipnetwork", ipNetworkName);

JsonObject interface_type = new JsonObject();
interface_type.add("eth0", ipnetwork);

JsonObject instance = new JsonObject();
instance.addProperty(imageListCmdText, "/oracle/public/oel6");
instance.addProperty("label","test_higgs");
instance.addProperty("shape","small");
instance.addProperty("name","/"+customerName);
instance.add("networking",interface_type);

JsonArray instances = new JsonArray();
instances.add(instance);

JsonObject launch_plan = new JsonObject();
launch_plan.add("instances", instances);

请告诉我们如何更改此代码以获取上述输出。

1 个答案:

答案 0 :(得分:1)

JsonObject launch_plan = new JsonObject();
launch_plan.add("instances", instances);

这两行用大括号创建JSON对象。你不需要它们,你可以删除它们并使用instances,它没有花括号,因为它是一个json 数组而不是json对象

JsonObject ipnetwork = new JsonObject();
ipnetwork.addProperty("ipnetwork", ipNetworkName);

JsonObject interface_type = new JsonObject();
interface_type.add("eth0", ipnetwork);

JsonObject instance = new JsonObject();
instance.addProperty(imageListCmdText, "/oracle/public/oel6");
instance.addProperty("label","test_higgs");
instance.addProperty("shape","small");
instance.addProperty("name","/"+customerName);
instance.add("networking",interface_type);

JsonArray instances = new JsonArray();
instances.add(instance);

// not needed
//JsonObject launch_plan = new JsonObject();
//launch_plan.add("instances", instances);