这是我第一次与json合作,我很难尝试过滤数组我试图获得所有值(tienda),其中id_estado = 1。
有任何线索如何处理?
JA1= [{"id_estado":"1","tienda":"Aurrera"},{"id_estado":"1","tienda":"Walt-Mart"},{"id_estado":"1","tienda":"Chedraui"},{"id_estado":"1","tienda":"Soriana"},{"id_estado":"1","tienda":"Comercial MX"},{"id_estado":"1","tienda":"City Market"},{"id_estado":"2","tienda":"Walt-Mart"},{"id_estado":"2","tienda":"Chedraui"},{"id_estado":"2","tienda":"Aurrera"},{"id_estado":"2","tienda":"Superama"}]
JSONArray JA1=new JSONArray(result1);
JSONObject json1= null;
name = new String[JA1.length()];
for (int i = 0; i < JA1.length(); i++) {
Log.d("LOG", "resultado name sin arreglo11 " + JA1);
//name[i] = json1.getString("tienda");
//name[i]=json1.getString("estado");
}
for(int i=0;i<name.length;i++)
{
list2.add(name[i]);
Log.d("LOG", "resultado name2 " + name[i]);
}
提前致谢
答案 0 :(得分:2)
我是这样做的:
try {
List<String> filtered = new ArrayList<>();
JSONArray ary = new JSONArray(/* your json here */);
for (int i = 0; i < ary.length(); ++i) {
JSONObject obj = ary.getJSONObject(i);
String id = obj.getString("id_estado");
if (id.equals("1")) {
filtered.add(obj.getString("tienda"));
}
}
} catch (JSONException e) {
// handle exception
}
对此代码的解释:
ArrayList
以保留过滤后的值。JSONArray
。JSONObject
。id_estado
属性并检查它是否等于"1"
。tienda
属性添加到过滤值列表中。答案 1 :(得分:0)
试试这个
for (int i = 0; i < JA1.length(); i++) {
JSONObject json_data = jsonArray.getJSONObject(i);
name[i] = json_data.getString("tienda");
}
我们必须使用您的案例中缺少的JSONObject json_data = jsonArray.getJSONObject(i);
在JSON中创建每个嵌套JSON项的对象。