此问题在此处已有答案:
How to add values to nested json efficiently when data is undefined(1个答案)
12个月前关闭。
这只是为了测试,但基本上它所做的是当它接收到一个消息(消息应该像abc/xyz/pq=yo),然后把它做成一个像:-{"root":[{"abc":[{"xyz":[{"pq":"yo"}]}]}]}
,但我是否想要,例如,已经存在一个json,如果有人想添加像abc/xyz/lm=ayo这样的值,那么如果它不存在,那么它会把它添加到现有的json中。如果有人想更新像abc/xyz/pq=ayo这样的值,那么它会更新它。也就是说,如果存在一个子节点,那么它会更新一个值,否则它会创建它。
如果你想知道为什么json有一个数组,即使是一个单独的孩子,即,因为在情况下,如果我们想添加数据到特定的孩子,我们可以很容易地添加。
请记住,这只是readFileResult()中的测试代码,但我希望更改整个结构。
更新:-因为我知道确切的路径,当用户想添加数据时,我可以很容易地添加数据到该路径,但问题是如何检查如何检查是否存在数据?因为我在数组中嵌套了子对象('{“root”:[{“abc”:[{“xyz”:[{“pq”:“yo”}]}]}}'),我不能循环通过每个子对象并解析它,因为这将消耗大量的资源和时间。
另一个更新:-我已经把结构改为rfc 8259来去掉这些数组。这应该会更简单,但是仍然在“更新”数据方面很困难。
2条答案
按热度按时间7tofc5zh1#
我发现了另一个更好的方法来解决这个问题,我稍微改变了一下结构,而不是使用JSONWriter和JSONArray,我只是使用JSONObjects来轻松地查询和编辑对象。
sxissh062#
如果JSON不存在,则插入对象到JSON中;如果存在,则更新对象,我认为有多种方法。现在我不知道您的用例限制,但最简单的一种方法将像下面的伪代码: