java - 如何从 JSON 数组中检索选定的数据?

标签 java arrays json android-studio

The data on server I want to retrieve, data in JSON format but problem is that I want to retrieve only data having specific CHEF_NAME from JSON array.I am using Android Studio.

JSON Array

[{"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 Code

             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);}}

最佳答案

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

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

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);
  }
}

关于java - 如何从 JSON 数组中检索选定的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61825889/

相关文章:

c - 从二维数组中找到最大值,并将最大值之前的所有值相加,然后将最大值之后的所有值相乘

javascript - 返回对象列表时在 ajax 中检索数据时出错

java - 缺少 While 循环逻辑

java - 通过 XSLT 解析嵌套标签

python - 在 2D numpy 数组中有效地找到正值的索引范围

java - 如何将一个int按数字转换为数组数字

java - org.json.JSONException : End of input at character 0

php - 在php中的数组的每个对象中添加数组

java - Java 8 中添加 Stream.Builder.accept(T t) 方法有什么意义?

java堆内存问题