Java 过滤Json数组

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

这是我第一次使用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":"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
      ,而不是
      字符串[]
      ,以收集结果。