如何在 json 文件中编辑和添加嵌套数据?

How can I edit and add nested data in json file?

虽然这只是为了测试,但基本上它所做的是当它收到一条消息时(消息就像 abc/xyz/pq=yo)然后像这样:- {"root":[{"abc":[{"xyz":[{"pq":"yo"}]}]}]} 但是例如,我想要的是已经存在 json,如果有人想添加 abc/xyz/lm=ayo 这样的值,那么如果它不存在,那么它会将其添加到现有的 json .如果有人想更新 abc/xyz/pq=ayo 之类的内容,那么它会更新它。也就是说,如果存在 child 那么它会更新一个值,否则它会创建它。

如果你想知道为什么 json 即使是单个 child 也有一个数组,即因为如果我们想向特定的 child 添加数据,我们可以轻松添加.

请记住,这只是我在 readFileResult() 中的测试代码,但我想更改整个结构。

更新:- 我知道用户想要添加数据时的确切路径,我可以轻松地将数据添加到该路径,但问题是如何检查如何检查是否存在数据?因为我在 Arrays('{"root":[{"abc":[{"xyz":[{"pq":"yo"}]}]}]}') 中嵌套了 child不能遍历每个 child 并解析它,因为它会消耗大量资源和时间。

另一个更新:- 我已将结构更改为 rfc8259 以摆脱这些数组。这应该更简单,但仍在努力“更新”数据。

如果对象不存在则向JSON插入对象或如果对象存在则更新,我认为有多种方法。现在我不知道你的用例限制,但最简单的一个就像下面的伪代码:

- get root level json object

- get input from user e.g. abc/xyz/lm=ayo

- split input first by '=' for value at index 1 and then by '/' for keys.

- Now iterate over keys
    + Find in object is key exists.
    + If key exists, get json object for that key and check for next keys inside this object.
    + If key does not exist, add keys in hierarchy and at last key, store above value. 

我找到了另一种更好的方法来解决这个问题,我稍微改变了结构。而不是使用 JSONWriter 和 JSONArray,我只是使用 JSONObjects 来轻松查询和编辑对象。您可以查看