检查JSONArray是否包含特定的值。

24

在我的Android活动中,我通过HTTP获取一个JSONArray,其中包含用户名。 数组看起来像这样:

[{"username":"Julia"},{"username":"Anja"},{"username":"Hans"},{"username":"Sophia"},{"username":"Sarah"}]

我希望在Android Activity中检查给定的用户名是否已经存在。

什么是最有效的方法?还是说我必须遍历整个数组?

1个回答

64
使用简单的字符串函数/方法,例如:
private boolean userexists(JSONArray jsonArray, String usernameToFind){
    return jsonArray.toString().contains("\"username\":\""+usernameToFind+"\"");
}

2
你可以使用jsonArray.toString().contains(usernameToFind)来获得更简洁和更短的解决方案。 - ralphgabb
17
抱歉,但我认为这不是一个好的解决方案。如果用户名部分重叠,该怎么办呢?例如,如果您要查找“Anja”这个用户名,但另一个用户被称为“Anjatovic”,这将导致不准确的结果。 - Thermometer
6
“@Thermometer”这就是为什么代码答案要寻找起始和结束引号的原因。 - petey
3
哎呀,完全错过了,我的错! - Thermometer
1
能否从匹配的数组中获取对象的索引? - isKrishnaK
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接