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中编写所有这些逻辑。
答案 0 :(得分:3)
您可以使用“LINQ for JavaScript”库。非常有用的库。 例如。我们可以更新像..
Enumerable.From(JsonArray).Where("$.componentId == 12").First().name= "tableName";
答案 1 :(得分:0)
您的解决方案很好(很复杂)。我看到的唯一优化方法是对列表进行排序(我的意思是按照名称和类型对其进行排序,如果从数据库加载它,而不是在Java中对其进行排序),以便您知道何时在到达之前停止搜索列表的结尾。我不确定二进制搜索算法是否对两个关键值有意义。