【问题标题】:How to retrieve selected data from JSON Array?如何从 JSON 数组中检索选定的数据?
【发布时间】:2020-09-01 16:07:22
【问题描述】:

我要检索服务器上的数据,JSON 格式的数据,但问题是我只想从 JSON 数组中检索具有特定 CHEF_NAME 的数据。我正在使用 Android Studio。

JSON 数组

[{"status":"Success","recpie":[{"id":"162","image":"1580130013.png","cat_id":"17","name":"Tikka Boti Mix Recipe","chef_name":"Mehran","link":"https:\/\/www.youtube.com\/watch?v=sbPNGHIOpQY","uvlink":"","like":"2","view":"227"},{"id":"168","image":"1580211123.png","cat_id":"17","name":"Seekh Kabab Paratha Roll Recipe","chef_name":"Mehran","link":"https:\/\/www.youtube.com\/watch?v=q36Syxhjg3o","uvlink":"","like":"19","view":"158"},{"id":"176","image":"recipe_1583154151.jpg","cat_id":"17","name":"Windows","chef_name":"Imran Ahmed","link":"","uvlink":"","like":"2","view":"119"},{"id":"190","image":"recipe_1584214019.jpg","cat_id":"17","name":"Chicken Broast","chef_name":"Imran Developer","link":"","uvlink":"http:\/\/billing.synctechsol.com\/video\/VID-20200112-WA0020.mp4","like":"3","view":"108"},{"id":"161","image":"1580309239.png","cat_id":"14","name":"Sindhi Biryani Mix Recipe","chef_name":"Mehran","link":"https:\/\/www.youtube.com\/watch?v=OUG7gYTrnEk","uvlink":"","like":"4","view":"104"},{"id":"182","image":"recipe_1584126527.jpeg","cat_id":"17","name":"Broast","chef_name":"Imran Developer","link":"","uvlink":"","like":"1","view":"64"},{"id":"198","image":"recipe_1584737360.jpeg","cat_id":"17","name":"Distribution Board","chef_name":"Imran Ahmed","link":"","uvlink":"http:\/\/billing.synctechsol.com\/video\/VID-20200219-WA0035.mp4","like":"7","view":"60"},{"id":"191","image":"recipe_1584260119.png","cat_id":"17","name":"ggbvn","chef_name":"Imran Developer","link":"","uvlink":"http:\/\/billing.synctechsol.com\/video\/VID-20200315-WA0001.mp4","like":"1","view":"58"},{"id":"163","image":"1580134470.png","cat_id":"15","name":"Achar Gosht Mix Recipe","chef_name":"Mehran","link":"https:\/\/www.youtube.com\/watch?v=5EQWOSRpzHg","uvlink":"","like":"8","view":"54"},{"id":"101","image":"1580210522.png","cat_id":"12","name":"Fish Fry Mix Recipe","chef_name":"Mehran","link":"https:\/\/www.youtube.com\/watch?v=GeSloGLoPMk","uvlink":"","like":"9","view":"50"},{"id":"178","image":"recipe_1583407824.jpg","cat_id":"17","name":"uhnbj","chef_name":"hi igh","link":"","uvlink":"","like":"0","view":"47"},{"id":"177","image":"recipe_1583234674.jpeg","cat_id":"17","name":"Kabuli Pulao","chef_name":"Imran Ahmed","link":"","uvlink":"","like":"0","view":"46"}]}]

Java 代码

             JSONArray jsonArray = new JSONArray(response);
             JSONObject jsonObject = jsonArray.getJSONObject(0);
             String status = jsonObject.getString("status");
             if (status.equals("Success")) {
                 JSONArray recipe = jsonObject.getJSONArray("recpie");
                 Log.e("Lenght", String.valueOf(recipe.length()));
                 for (int i = 0; i < recipe.length(); i++) {
                     JSONObject jsonObject1 = recipe.getJSONObject(i);
                     SearchGetSet searchGetSet = new SearchGetSet();
                     String id = jsonObject1.getString("id");
                     String image = jsonObject1.getString("image");
                     String cat_id = jsonObject1.getString("cat_id");
                     String name = jsonObject1.getString("name");
                     String chef_name = jsonObject1.getString("chef_name");
                     String link = jsonObject1.getString("link");
                     String uvlink = jsonObject1.getString("uvlink");
                     String like = jsonObject1.getString("like");
                     String view = jsonObject1.getString("view");
                     searchGetSet.setId(id);
                     searchGetSet.setRec_name(name);
                     searchGetSet.setRec_image(image);
                     searchGetSet.setLikes(like);
                     searchGetSet.setCat_id(cat_id);
                     searchGetSet.setChef_name(chef_name);
                     searchGetSet.setLink(link);
                     searchGetSet.setUVlink(uvlink);
                     searchGetSet.setView(view);
                     searchList.add(searchGetSet);}}

【问题讨论】:

    标签: java arrays json android-studio


    【解决方案1】:

    仅当 chef_name 与您正在搜索的名称匹配时,才创建并添加您的 searchGetSet 对象。

    我的猜测是(我不懂 Java),你必须使用一个简单的 if 语句,while 循环:

    for (int i = 0; i < recipe.length(); i++) {
      JSONObject jsonObject1    = recipe.getJSONObject(i);
      SearchGetSet searchGetSet = null; // Do not create your searchGetSet() object yet.
      String chef_name          = jsonObject1.getString("chef_name");
    
      // Check the chef's name is 'John'.
      if (chef_name.equals('John')) {
        String id     = jsonObject1.getString("id");
        String image  = jsonObject1.getString("image");
        String cat_id = jsonObject1.getString("cat_id");
        String name   = jsonObject1.getString("name");
        // ...
        searchGetSet = new SearchGetSet();
        searchGetSet.setId(id);
        searchGetSet.setRec_name(name);
        searchGetSet.setRec_image(image);
        // ...
    
        // Let's add the result we have found.
        searchList.add(searchGetSet);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      相关资源
      最近更新 更多