Java 过滤Json数组
这是我第一次使用json,我很难过滤一个数组,我试图获取id_estado=1的所有值(tienda) 有什么办法吗Java 过滤Json数组,java,android,json,Java,Android,Json,这是我第一次使用json,我很难过滤一个数组,我试图获取id_estado=1的所有值(tienda) 有什么办法吗 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":"Comerci
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]);
}
“1”、“TINDA”:“1”、“TINDA”:“““Aurrera”},{“id_estado”:“2”,“tienda”:“Superama”}]
JSONArray JA1=新JSONArray(结果1);
JSONObject json1=null;
name=新字符串[JA1.length()];
for(int i=0;i 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
}
试试看{
List filtered=new ArrayList();
JSONArray ary=新JSONArray(/*您的json在此*/);
对于(int i=0;i
对该代码的解释:
- 创建一个
以保存过滤后的值ArrayList
- 从json文本创建一个
JSONArray
- 迭代数组中的每个元素,每次拉出一个
JSONObject
- 对于每个对象,我们获取其
属性,并检查它是否等于id_estado
“1”
- 如果是,我们将
属性添加到过滤值列表中tienda
- 以下是我的做法:
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
}
试试看{
List filtered=new ArrayList();
JSONArray ary=新JSONArray(/*您的json在此*/);
对于(int i=0;i
对该代码的解释:
- 创建一个
以保存过滤后的值ArrayList
- 从json文本创建一个
JSONArray
- 迭代数组中的每个元素,每次拉出一个
JSONObject
- 对于每个对象,我们获取其
属性,并检查它是否等于id_estado
“1”
- 如果是,我们将
属性添加到过滤值列表中tienda
for (int i = 0; i < JA1.length(); i++) {
JSONObject json_data = jsonArray.getJSONObject(i);
name[i] = json_data.getString("tienda");
}
for(int i=0;i
我们必须使用您案例中缺少的JSONObject JSON_data=jsonArray.getJSONObject(i);
为JSON中的每个嵌套JSON项创建对象。试试这个
for (int i = 0; i < JA1.length(); i++) {
JSONObject json_data = jsonArray.getJSONObject(i);
name[i] = json_data.getString("tienda");
}
for(int i=0;i
我们必须使用jsonobjectjson\u data=jsonArray.getJSONObject(i)创建JSON中每个嵌套JSON项的对象;
在您的案例中缺少。提示:如果筛选数组,结果数组可能会更小。结果数组的大小事先不知道,因此您应该使用ArrayList
,而不是字符串[]
,以收集结果。提示:如果要筛选数组,结果数组可能会更小。结果数组的大小事先未知,因此应使用ArrayList
,而不是字符串[]
,以收集结果。