【发布时间】:2013-04-06 20:16:15
【问题描述】:
我在这样的 jsonarray 中有两个 json 对象
"errorCode": "1",
"data": [
{
"messageId": 590,
"message": "WvZiT3RPm7feC6Hxsa/Ing==",
"messageType": "CHAT",
"sentOn": "01:51 PM, Apr 06, 2013",
"mainParent": 589,
"officeId": "19",
"webParent": 590
},
{
"messageId": 589,
"message": "1A45rtoC3Cy88h73TEvDqQ==",
"messageType": "CHAT",
"sentOn": "01:50 PM, Apr 06, 2013",
"parent": 0,
"signImg": null,
"mainParent": 589,
"officeId": "19",
"webParent": 1
}
]
所以我想根据消息 ID 键按升序排序。我尝试使用对象类型为 json 对象的比较器,但在 compareto 方法中出现错误。请给我建议
【问题讨论】:
-
你正试图以硬方式做到这一点。在转换为 JSON 之前执行此操作(如果您正在生成它),或者在从 JSON 转换为 java 对象之后(因为您没有将所有这些都保留为 JSON,我敢肯定 - 您正在将其解析为对象一些便于编码的点,对吧?)。在它的 JSON 只是痛苦的时候这样做。
-
@GabeSechan 以我阅读问题的方式,我怀疑他正在使用 JSON 库并试图操纵 JSON DOM。 @user2014616 请发布您的
Comparator代码和您遇到的错误。 -
在转成json之前有什么办法可以排序
-
公共类 SortBasedOnMessageId 实现 Comparator
{ @Override public int compare(JSONObject lhs, JSONObject rhs) { if (rhs.getInt("messageId") lhs.getInt("messageId")) 返回 1;否则返回 0; } } -
这将帮助您解决问题