2016-08-06 4 views
-2

Ich habe eine Android-App, die mir Daten, das ist etwas, senden wie this-JSON Decodierung für inkonsequent Array mit PHP

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

Ich brauche diese zu entschlüsseln und die Daten zu verwenden, um in der Datenbank zu speichern. Wie verwende ich eine Schleife, um diese Daten zu verwenden. Ich habe normale Array gemacht, aber das hat ein Objekt darin.

Bitte helfen.

Nur PHP.

Antwort

0

Sie können JSONObject und JSONArray verwenden, um Daten aus JSON String abzurufen.

Sie haben JSON Objekt Zeichenfolge wie folgt.

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

Sie können dies auf durch den Aufruf, JSONObject Objekt konvertieren

JSONObject myObject=new JSONObject(YOUR_JSON_STRING); 

Jetzt Werte abrufen aus JSONObject gibt es mehrere Verfahren zur Verfügung.

getString() - Um Zeichenfolgenwert zu erhalten.
getInt() - Wird verwendet, um den Ganzzahlwert zu erhalten.
getJSONArray() - Wird verwendet, um Array aus der Position zu holen.


Genau wie JSONObjectJSONArray mehrere Methoden muss Wert abzurufen.

Es geht darum sicherzustellen, dass Sie entweder mit JSONObject oder JSONArray arbeiten.


Blick auf http://json-parser.com/51c495a8 die Struktur Ihrer JSON String kennen.

0

Verwenden Sie json_decode, wenn das zweite Argument auf true gesetzt ist. Dadurch erhalten Sie ein Array.

json_decode($json, true); 

das wird Ihnen keine StdClass geben.

0

Sie können JSON String wie folgt analysieren, aber es gibt viele foreach-Schleife Ich hoffe, es hilft Ihnen ..

//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: