【问题标题】:Comparing JSONArrays比较 JSONArrays
【发布时间】:2012-02-26 14:50:57
【问题描述】:

我目前在我的 android 应用程序中使用自定义服务从远程数据库中检索 JSONArray。检索到 JSONArray 后,我想将其内容与另一个我称之为“最近的”的 JSONArray 进行比较。如果新检索到的 JSONArray 与“mostRecent”不同,那么我想用新检索到的 JSONArray 更新“mostRecent”。但是,如果我没记错的话,JSONArray equals 方法比较的是 JSONArray 对象的实例而不是内容,对吗?有没有一种简单的方法来比较两个 JSONArrays 的内容?感谢您的帮助!

【问题讨论】:

    标签: android json compare arrays


    【解决方案1】:

    使用它:

    array1.toString().equals(array2.toString());
    

    也许您甚至可以使用收到的字符串,而无需构造 JSONArrays,但是您需要确保两者的格式相同。

    【讨论】:

    • 这是一个有效的快速作弊方法。但应谨慎使用大型数组!!!我想在数组中的数据发生变化时调用一个事件,所以我用它来将数组作为字符串进行比较,并将先前的状态存储为字符串。但是我的数组很小。我认为解决这个问题的更好方法是生成校验和并比较它们而不是数据本身。
    • 数组可以有不同的项目顺序,所以它不会一直有效,小心!
    • @AlexanderAgeychenko 数组是有序集合。如果相同的元素在不同的索引中,则数组是不同的。如果您需要解决不同的任务,则需要不同的方法。
    • @BorisStrandjev 我的错,我的意思是 JSONObjects,通常我们比较 JSONObjects 的 JSONArrays,在这种情况下 JSONObjects 可能有不同的键顺序,并且当转换为 String 时数组会有所不同跨度>
    • @BorisStrandjev 我可以问一个简单的问题吗?如果我使用没有 toString() 的 jsonarr1.equals(jsonarr2) 也可以吗?
    猜你喜欢
    • 2011-06-03
    • 2016-05-10
    • 2017-08-07
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多