检查JSONArray的具体值

tob*_*ias 19 android json

在我的Android Activity中,我通过HTTP包含用户名来获取JSONArray.Array看起来像这样:

[{"username":"Julia"},{"username":"Anja"},{"username":"Hans"},{"username":"Sophia"},{"username":"Sarah"}]
Run Code Online (Sandbox Code Playgroud)

如果给定的用户名已存在,我想检查Android Activity.

最有效的方法是什么?或者我必须迭代整个数组?

pet*_*tey 53

使用简单的String函数/方法

private boolean userexists(JSONArray jsonArray, String usernameToFind){
    return jsonArray.toString().contains("\"username\":\""+usernameToFind+"\"");
}
Run Code Online (Sandbox Code Playgroud)

  • 对不起,这是一个糟糕的解决方案.如果用户名包含部分其他用户名怎么办?因此,如果你有"Anja"作为用户名来查找,但另一个用户被称为"Anjatovic".这会导致不准确的结果. (11认同)
  • @Thermometer这就是代码答案查找开始和结束引号的原因. (3认同)
  • Woops,完全错过了,我的错! (3认同)
  • 你也可以返回jsonArray.toString().contains(usernameToFind); 为更清洁,更短的解决方案. (2认同)