在JSON中创建键值对字符串

时间:2013-04-30 18:07:13

标签: java json

我是JSON的新手。我正在尝试用Java创建一个JSON字符串(org.json.JSONObject(json.jar)),它类似于(基本上是一组名称 - 值对)

[{
    "name": "cases",
    "value": 23
}, {
    "name": "revenue",
    "value": 34
}, {
    "name": "1D5",
    "value": 56
}, {
    "name": "diag",
    "value": 14
}]

任何人都可以帮我解决如何在Java中创建它的问题吗?我希望名称和值都在每个中,以便我可以迭代集合,然后获得单个值。

3 个答案:

答案 0 :(得分:11)

库是链接的,因此您可以通过首先创建一个json数组,然后创建单个对象并将它们一次添加到数组中来创建对象,如下所示:

new JSONArray()
    .put(new JSONObject()
            .put("name", "cases")
            .put("value", 23))
    .put(new JSONObject()
            .put("name", "revenue")
            .put("value", 34))
    .put(new JSONObject()
            .put("name", "1D5")
            .put("value", 56))
    .put(new JSONObject()
            .put("name", "diag")
            .put("value", 14))
    .toString();

获得最终数组后,请在其上调用toString以获取输出。

答案 1 :(得分:0)

你所拥有的是一个包含4个JSON对象的JSON数组。每个对象包含两个键和两个值。在Java中,JSON“对象”通常由某种“Map”表示。

答案 2 :(得分:0)

如果你必须在java中使用JSON,那么尝试使用gson。 Gson是一个Java库,可用于将Java对象转换为JSON表示。它还可用于将JSON字符串转换为等效的Java对象。

这是一个小例子:

Gson gson = new Gson();
gson.toJson(1);            ==> prints 1
gson.toJson("abcd");       ==> prints "abcd"
gson.toJson(new Long(10)); ==> prints 10
int[] values = { 1 };
gson.toJson(values);       ==> prints [1]