如何以有效的方式在JsonArray中搜索和更新JsonObject?

时间:2009-12-23 06:24:11

标签: java json

JsonArray-示例:

   [
    {"name":"table","type":"table","reportId":7,"componentId":12,"width":0,"height":0,"dataType":"DEFAULT"},
    {"name":"chart","type":"chart","reportId":7,"componentId":13,"width":0,"height":0,"dataType":"DEFAULT"}
    ]

我必须使用Key(名称,类型)搜索JsonObject,如果存在jsonObject,则要更新或删除数组中的jsonObject。

**正常解决方案:**单独迭代每个JsonObject,查找密钥并执行操作。
附:我想在java而不是javascript中编写所有这些逻辑。

2 个答案:

答案 0 :(得分:3)

您可以使用“LINQ for JavaScript”库。非常有用的库。 例如。我们可以更新像..

Enumerable.From(JsonArray).Where("$.componentId == 12").First().name= "tableName";

答案 1 :(得分:0)

您的解决方案很好(很复杂)。我看到的唯一优化方法是对列表进行排序(我的意思是按照名称和类型对其进行排序,如果从数据库加载它,而不是在Java中对其进行排序),以便您知道何时在到达之前停止搜索列表的结尾。我不确定二进制搜索算法是否对两个关键值有意义。