使用php对JSON解码不一致的数组

时间:2016-08-06 10:19:50

标签: php android json

我有一个Android应用程序,它向我发送类似这样的数据 -

{"uid":1, "newAdd":"New York", "coupon_status":"yes", "coupon_code":"SALE50", "place_code":4, "basket":[{"name":"xyz", "vendorId":1, "total":100, "count":2}, {...} ,{...}] }

我需要对此进行解码并使用数据存储到数据库中。我如何使用循环来使用这些数据。我已经完成了普通数组,但是里面有一个对象。

请帮忙。

仅限PHP。

3 个答案:

答案 0 :(得分:0)

您可以使用JSONObjectJSONArray从JSON字符串中获取数据。

您拥有JSON 对象字符串,如下所示。

{"uid":1, "newAdd":"New York", "coupon_status":"yes", "coupon_code":"SALE50", "place_code":4, "basket":[{"name":"xyz", "vendorId":1, "total":100, "count":2}, {...} ,{...}] }

您可以通过调用

将其转换为 JSONObject 对象
JSONObject myObject=new JSONObject(YOUR_JSON_STRING);

现在要从 JSONObject 中检索值,有几种方法可用。

getString() - 获取字符串值。
getInt() - 用于获取整数值 getJSONArray() - 用于从位置获取数组。

就像 JSONObject JSONArray确实有多种方法可以检索值。

所有关于确保您使用JSONObjectJSONArray

查看http://json-parser.com/51c495a8以了解 JSON字符串的结构。

答案 1 :(得分:0)

使用json_decode,第二个参数设置为true,它会给你一个数组。

json_decode($json, true);

不会给你一个StdClass。

答案 2 :(得分:0)

你可以解析JSON String如下,但是有很多foreach循环我希望它可以帮助你..

  //Parse JSON String as array

  $res = json_decode($json_string, true);

  foreach ($json_a as $row => $value) {

      echo $row . "........";

      if(!is_array($value)){

           echo $value."</br>";     
      }

      else{

           foreach ($value as $k=>$v){

              echo "</br>........".$k."........</br>";

              foreach($v as $data=>$dv){

                   echo $data."....".$dv."</br>";

              }

          }
     }
 }

This will return like below: