получение данных из массива Json в массиве Json Android Java

#java #android #json

#Ява #Android #json

Вопрос:

как получить данные из массива Json в другом массиве Json ,мне нужно получить массив «элементы дополнения» и поместить его в другое представление корзины

пожалуйста, посмотрите на json и java-код, который я уже написал .

вывод json:

 [{  "name": "BOILED EGGS",  "price": 40000,  "quantity": 1,  "option": null,  "addon items": [  {  "addon_item_name": "Cheese",  "addon_id": "112",  "price": "2500",  "quantity": "1"  }  ],  "order notes": "extra meal" }{  "name": "Amazon Green Salad",  "price": 54000,  "quantity": 1,  "option": "Full Portion",  "addon items": [  {  "addon_item_name": "Cheese",  "addon_id": "112",  "price": "2500",  "quantity": "1"  },  {  "addon_item_name": "Smoked Salmon",  "addon_id": "136",  "price": "4000",  "quantity": "1"  }  ],  "order notes": "" }{  "address": {  "address": "hadath",  "flat": "mona bldg",  "city": "beirut",  "postcode": "1003"  },  "phone": "71883419" }]  

пожалуйста, прежде чем сказать мне, есть ли у меня какие-либо проблемы с этим json

php-скрипт :

  lt;?php  header('Content-Type: application/json; charset=utf-8'); function getAdd($ids) {  $servername = 'mysql'; $username = ''; $password = ''; $database = ''; $conn = new mysqli($servername, $username, $password, $database); $sql = "SELECT meta_value FROM `wp_postmeta` WHERE post_id = ? AND meta_key = '_rpress_delivery_address' "; $stmt = $conn-gt;prepare($sql); $stmt-gt;bind_param('i',$ids); $stmt-gt;execute(); $stmt-gt;bind_result($meta_value); while($stmt-gt;fetch()){  $arr = unserialize($meta_value);  return $arr;   }     }    function getVar($ids,$price) {  $servername = 'mysql'; $username = ''; $password = ''; $database = ''; $conn = new mysqli($servername, $username, $password, $database); $sql = "SELECT meta_value FROM `wp_postmeta` WHERE post_id = ? AND meta_key = 'rpress_variable_prices' "; $stmt = $conn-gt;prepare($sql); $stmt-gt;bind_param('i',$ids); $stmt-gt;execute(); $stmt-gt;bind_result($meta_value); while($stmt-gt;fetch()){  $arr = unserialize($meta_value);  for ($i=0; $ilt;=count($arr);$i  ) {    $p1 = $arr[$i][amount] 0;    if ($p1 == $price) {    return $arr[$i][name];  }    }  }     }        if (isset($_GET['id'])) {  $id= $_GET['id']; $servername = 'mysql'; $username = ''; $password = ''; $database = ''; $conn = new mysqli($servername, $username, $password, $database);  $orders = array();  $sql = "SELECT meta_value FROM `wp_postmeta` WHERE post_id = ?"; $stmt = $conn-gt;prepare($sql); $stmt-gt;bind_param('i',$id); $stmt-gt;execute(); $stmt-gt;bind_result($meta_value); while($stmt-gt;fetch()){  $arr = unserialize($meta_value); //var_dump($arr);  for($i=0;$ilt;=count($arr);$i  ) { $items = array();   $items[$i] = $arr[cart_details][$i];  if ($items[$i] !== null) {   $variable_id = $arr[cart_details][$i][id];  $vp = $arr[cart_details][$i][price];  $phone = $arr[phone];  $notes = $arr[cart_details][$i][instruction];  ;     //echo $arr[1];    $temp = [  'name' =gt; $arr[cart_details][$i][name],  'price' =gt; $arr[cart_details][$i][price],  'quantity' =gt; $arr[cart_details][$i][quantity],  'option' =gt; getVar($variable_id,$vp),  'addon items'=gt; $arr[cart_details][$i][addon_items],  'order notes' =gt; $notes,  'address' =gt; getAdd($id),  'phone' =gt; $phone     ];       $json = json_encode($temp);  echo $json;   }  }  $fixed_temp = [    'address' =gt; getAdd($id),  'phone' =gt; $phone      ];      //print_r($arr[cart_details][$i][addon_items]);    }  // echo json_encode($fixed_temp);   }    ?gt;   

пожалуйста, если вы видите какие-либо проблемы в php-скрипте, сообщите мне

Ява :

  public void getAllPosts() throws Exception{  String TAG = "POSTS_VIDEO";  String url = "https://fitness-diner.com/api/api-get-post-data-bkp.php?id=" id;  StringRequest jsonObjectRequest = new StringRequest(Request.Method.GET, url, new Response.Listenerlt;Stringgt;() {  @Override  public void onResponse(String response) {  Log.i("response_VIDEO", response);   progressBar.setVisibility(View.GONE);   parseJson(response);  }  }, new Response.ErrorListener() {  @Override  public void onErrorResponse(VolleyError error) {  try {   // swipeRefreshLayout.setRefreshing(false);  Log.e("error", ""  error.getMessage());  }catch (NullPointerException e)  {  // swipeRefreshLayout.setRefreshing(false);  e.printStackTrace();  }    }  });    AppController.getInstance().addToRequestQueue(jsonObjectRequest, TAG);   }  public void parseJson(String response){   try {   JSONArray array = new JSONArray(response);  JSONObject jsonObject =null;   post_array.clear();  ItemOrder p;  AddOnitem r;  for(int i=0 ; ilt;array.length() ; i  )  {  jsonObject=array.getJSONObject(i);    String nameitem = jsonObject.getString("name");  String priceitem = jsonObject.getString("price");  String quantityitem = jsonObject.getString("quantity");  String optionitem = jsonObject.getString("option");  // String addonid = jsonObject.getString("addon items");  String noteitem = jsonObject.getString("order notes");     p = new ItemOrder();  p.setNameitem(nameitem);  p.setPriceitem(priceitem);  p.setQuantityitem(quantityitem);  p.setOptionitem(optionitem);  p.setNoteitem(noteitem);  // p.setViews_video(views_video);    post_array.add(p);  //realmHelper.save(p);  }    }  catch (JSONException e) {  // swipeRefreshLayout.setRefreshing(false);  e.printStackTrace();  Log.d("error", e.getMessage());  }  adapter = new ItemOrderAdapter(getApplicationContext(), post_array,id);  recyclerView.setAdapter(adapter);   // swipeRefreshLayout.setRefreshing(false);   }   

мне нужно решить это быстро

Спасибо!!

Комментарии:

1. Ваш массив JSON не является допустимым массивом (между объектами нет запятых)

2. пожалуйста, скажите мне, что я могу изменить в php-скрипте

3. Для начала, temp всегда есть только один элемент, и вы не должны повторять несколько объектов в цикле. Вы должны создать пустой массив перед циклом. Добавьте к нему объекты в цикле, а затем повторите json_encode результат массива один раз после цикла