我有一个名字的jsonarray和每个名字的ID。例如
[{ "Name":"Evan" , "id":1},{"Name":"Aaron","id":2}ect....]
如果我有编辑文本,则用户输入名称。我如何创建一个循环来传递数组,如果匹配则返回他们输入的人名的id。
所以,如果他们在编辑文本中键入Evan。我想让应用程序记录id: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;
}