代码之家  ›  专栏  ›  技术社区  ›  Allan Mertner

如何高效地搜索和更新jsonarray中的jsonObject?

  •  0
  • Allan Mertner  · 技术社区  · 6 年前

    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"}
        ]
    

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

    **正常解决方案:**分别迭代每个JSONObject,查找键并执行操作。
    我想用Java而不是JavaScript来编码所有这些逻辑。

    2 回复  |  直到 13 年前
        1
  •  0
  •   Piotr Gwiazda    15 年前

    您的解决方案很好(n个复杂性)。优化的唯一方法是让列表排序(我是说,如果从数据库加载它,而不是用Java对它排序),那么就让它按名称和类型排序。这样,您就知道在到达列表末尾之前什么时候停止搜索。我不确定二进制搜索算法对两个键值是否有意义。

        2
  •  3
  •   Rajkumar    13 年前

    你可以使用“ LINQ for JavaScript “图书馆。非常有用的图书馆。 例如。我们可以更新为……

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