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

Seeing if an object a jsonarray list is equal to the user input

我有一个 jsonarray 名称和每个名称的 Id。例如

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

如果我有一个编辑文本,用户输入一个名字。如果匹配,我如何创建一个循环来传递数组和 return 他们输入的人名的 ID。

所以如果他们在编辑文本中输入 Evan。我希望该应用记录 id:1

第 1 步: 创建一个 class 用户模型。

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;
    }
}

步骤 2: 创建用户模型 class 的 ArrayList。

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

第 3 步: 假设您知道如何解析 json。在数组列表中的模型中设置值。

    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
    }

第 4 步: 这是一个搜索功能,如果找到匹配项,它将 return 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;
}