查看jsonarray列表中的对象是否等于用户输入

时间:2015-02-06 02:24:07

标签: java android arrays json android-edittext

我有一个名字的jsonarray和每个名字的ID。例如

[{ "Name":"Evan" , "id":1},{"Name":"Aaron","id":2}ect....]

如果我有编辑文本,则用户输入名称。我如何创建一个循环来传递数组,如果匹配则返回他们输入的人名的id。

所以,如果他们在编辑文本中键入Evan。我想让应用程序记录id:1

1 个答案:

答案 0 :(得分:1)

步骤1:创建一个用户模型类。

public class User {
    String name;
    String id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

Step-2:创建User模型类的ArrayList。

    ArrayList<User> mArrayList = new ArrayList<User>();

步骤3:假设您知道如何解析json。在arraylist中设置模型中的值。

    try {
        JSONArray mJsonArray = new JSONArray(yourJsonString);
        for (int i = 0; i < mJsonArray.length(); i++) {
            User user = new User();
            user.setName(mJsonArray.getJSONObject(i).getString("Name"));
            user.setId(mJsonArray.getJSONObject(i).getString("id"));
            mArrayList.add(user);
        }
    } catch (Exception e) {
        // TODO: handle exception
    }

Step-4:这是一个搜索功能,如果找到匹配项将返回id。

private String searchIdByName(String name) {
    for (int i = 0; i < mArrayList.size(); i++) {
        if (mArrayList.get(i).getName().equals(name)) {
            return mArrayList.get(i).getId();
        }
    }
    return null;
}