如何在Java中创建二维JSON对象

时间:2014-10-16 08:00:15

标签: java json

我需要像这样在

中创建一个二维JSON对象
{
    "0": {
        "Name": "ABC",
        "Email": "abc@gmail.com"
    },
    "1": {
        "Name": "xyz",
        "Email": "xyz@gmail.com"
    }
}

以下是我创建一维JSON的方法

JSONObject contact = new JSONObject();
contact.put("Name", name);
contact.put("PhoneNumber", phoneNumber);
contact.put("Email", Email);

现在我有多个联系人。所以我需要一种方法将它们转换为二维JSON对象。

怎么做? P.S:我在java方面没有太多的实践经验。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

Map<String, Map<String, String>> myMap = new HashMap<String, HashMap<String, String>>();
Map<String, String> m0 = new HashMap<String, String>();
Map<String, String> m1 = new HashMap<String, String>();

m0.put("Name",  "ABC");
m0.put("Email", "abc@gmail.com");

m1.put("Name",  "xyz");
m1.put("Email", "xyz@gmail.com");

myMap.put("0", m1);
myMap.put("1", m2);

现在你在myMap中有这个对象,但我认为你并不是真正理解java

答案 1 :(得分:1)

您需要com.google.gson。* package

    JsonObject root = new JsonObject();
    JsonObject c0 = new JsonObject();
    JsonObject c1 = new JsonObject();

    root.add("0", c0);
    root.add("1", c1);

    c0.add("Name", new JsonPrimitive("ABC"));
    c0.add("Email", new JsonPrimitive("abc@gmail.com"));
    c1.add("Name", new JsonPrimitive("xyz"));
    c1.add("Email", new JsonPrimitive("xyz@gmail.com"));
    System.out.println(new Gson().toJson(root));

熟悉这种分层结构,你会经常使用它。此外,如果您有一个完整的API来帮助您操作JSON-s,我建议不要使用地图。