改变json元素' javax.json.JsonArray中的值

时间:2015-07-01 17:50:38

标签: java json collections

[
    {
        "key":"key1",
        "value":"key one value",
        "description":""
    },
    {
        "key":"key2",
        "value":"key two value",
        "description":""
    },
    {
        "key":"key3",
        "value":"key three value",
        "description":""
    },
    {
        "key":"key4",
        "value":"key four value",
        "description":""
    },
    {
        "key":"key5",
        "value":"key five value",
        "description":""
    }   
]

以上是我使用的一个json文件示例,我将它放入像这样的JsonArray

BufferedReader reader = Files.newBufferedReader(file,
                Charset.defaultCharset());
JsonReader jsonReader = Json.createReader(reader);
JsonArray array = jsonReader.readArray();

我的问题是我想访问JsonArray并更改每个json元素的值部分但是无法执行此操作。 该集合似乎无论如何都无法替换任何json元素的值。 你知道吗,我能达到我要做的目的吗? PS:也对使用替代收藏品的建议持开放态度,但请教我如何选择收藏品。

1 个答案:

答案 0 :(得分:1)

由于您没有提到您正在使用的JSON库,因此如果您使用json-lib替换元素,则可以使用element方法

public JSONArray element(int index,
                         Object value)

如果要更新JSONObject元素的特定属性,可以尝试类似下面的内容

array.getJSONObject(0).put("key","new key value")

请注意,我使用硬编码值0进行演示。