2016-11-21 2 views
-1

Ich habe diese Daten von meinem API-Aufruf.Wie kann ich meine API-Antwort in PHP Array konvertieren?

[{\ "Paketname \": \ "Buch + - + Ausreißer \", \ "Tracking \": \ "1Z2FF4063A00030059 \", \ "packageweight \": \ "1.0000 \", \ "weightunit \ ": \" Lbs \ "," price \ ": \" 16.9900 \ ", \" suiteno \ ": [], \" user_id \ ": \" NOTFOUND \ "}, {\" Paketname \ ": "Buch + - + Ausreißer", "Nachverfolgungsnummer": "1Z2FF4063A00030059", "Paketgewicht": "1,0000", "Gewichtseinheit": "Lbs", "Preis" : \ "16.9900 \", \ "suiteno \": \ "TY1000234 \", \ "user_id \": \ "1000234 \"}, {\ "Paketname \": \ "Buch + - + David +% 26 + Goliath +% 3B + Gesicht + Creme + - + Clinique% 2FGlycolix \ ", \" Trackingnummer \ ": \" 9.36E + 21 \ ", \" Paketgewicht \ ": \" 2.0000 \ ", \" Gewichtseinheit \ ": \" Lbs \ "," Preis ":" 18.0000 "," suiteno ":" TY1000234 "," user_id ":" 1000234 ", {\" Paketname \ ":" Sonnenbrille + " + Valentino \ ", \" trackingnumber \ ": \" 1.02E + 33 \ ", \" packageweight \ ": \" 0.5000 \ "," weightunit \ ": \" Lbs \ ", \" price \ ": null, "suiteno": \ "TY1000431 \", \ "user_id \": \ "1000431", {\ "Paketname \": "Sonnenbrille + - + Safilo + Gruppe", "Trackingnummer": "1,01E + 33", "Paketgewicht": "0,8000" , "Gewichtungseinheit": "Lbs", "Preis": null, "suiteno": "TY1000431", "user_id": "1000431", {"Paketname "Pigmentation + Color + Tobacco", "trackingnumber": "42060106" 9405510200830072094975 '\ "," packageweight ":" 0,6300 "," weightunit ": \" lbs \“, \ "Preis \": \ "320.0000 \", \ "suiteno \": [], \ "user_id \": \ "NOTFOUND \"}]

Wie kann ich konvertieren diese Daten in PHP Array? Ich habe versucht mit json_decode($result,true), aber es funktioniert nicht richtig. Danke im Voraus.

UPDATE:

Mein PHP-Code

$ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_PORT, 443); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    $result = curl_exec($ch); 
    curl_close($ch); 

    $json_result = json_decode(stripslashes($result), true); 
    $json=str_replace("\\",'', $result); 
    $jsondata=json_decode($json,true); 

    print_r($jsondata); 
    //echo $result; 
+0

Verwenden Sie Dekodieren, nicht encodieren – jitendrapurohit

+0

Hi. Entschuldigung, ich benutzte bereits decode und kodiere nicht. Es war ein Tippfehler. –

+0

Wie wäre es, wenn Sie uns sagen, was "nicht richtig funktioniert" bedeutet? Achte auch auf das minimale Beispiel, von dem du wahrscheinlich schon gehört hast? –

Antwort

2

Verwendung json_decode() hierfür:

// It will convert the given json to an array 
$arr = json_decode($json, true); 
// The second param is for array, o/w it will return an object 

Reference

+1

Hallo. Entschuldigung, ich benutzte bereits decode und kodiere nicht. Es war ein Tippfehler. –

1
$json='[{\"packagename\":\"Book+-+Outliers\",\"trackingnumber\":\"1Z2FF4063A00030059\",\"packageweight\":\"1.0000\",\"weightunit\":\"Lbs\",\"price\":\"16.9900\",\"suiteno\":[],\"user_id\":\"NOTFOUND\"},{\"packagename\":\"Book+-+Outliers\",\"trackingnumber\":\"1Z2FF4063A00030059\",\"packageweight\":\"1.0000\",\"weightunit\":\"Lbs\",\"price\":\"16.9900\",\"suiteno\":\"TY1000234\",\"user_id\":\"1000234\"},{\"packagename\":\"Book+-+David+%26+Goliath+%3B+Face+Cream+-+Clinique%2FGlycolix\",\"trackingnumber\":\"9.36E+21\",\"packageweight\":\"2.0000\",\"weightunit\":\"Lbs\",\"price\":\"18.0000\",\"suiteno\":\"TY1000234\",\"user_id\":\"1000234\"},{\"packagename\":\"Sunglasses+-+Valentino\",\"trackingnumber\":\"1.02E+33\",\"packageweight\":\"0.5000\",\"weightunit\":\"Lbs\",\"price\":null,\"suiteno\":\"TY1000431\",\"user_id\":\"1000431\"},{\"packagename\":\"Sunglasses+-+Safilo+group\",\"trackingnumber\":\"1.01E+33\",\"packageweight\":\"0.8000\",\"weightunit\":\"Lbs\",\"price\":null,\"suiteno\":\"TY1000431\",\"user_id\":\"1000431\"},{\"packagename\":\"Pigmentation+Color+Tobacco\",\"trackingnumber\":\"420601069405510200830072094975\",\"packageweight\":\"0.6300\",\"weightunit\":\"Lbs\",\"price\":\"320.0000\",\"suiteno\":[],\"user_id\":\"NOTFOUND\"}]'; 

$json=str_replace("\\",'', $json); 
$jsondata=json_decode($json,true); 

    print_r($jsondata); 
+0

Gibt null zurück. :( –

0

Try this,

$jsonData = stripslashes(html_entity_decode($result));  
$output = json_decode($jsonData, true); 

echo "<pre>"; 
print_r($output); 
echo "</pre>"; 

Oder auf diese Weise versuchen,

$out = preg_replace('/\\\"/',"\"", $result); 
$output = json_decode($out, true); 

echo "<pre>"; 
print_r($output); 
echo "</pre>"; 
+0

zeigt nichts an. –

+0

@AliZia Ich habe die Antwort aktualisiert, überprüfen Sie den zweiten Weg – user3099298

0

ROTATION Ausgang json ist und in Zeile $ json_result = json_decode ($ result, true); Sie haben es in ein Array decodiert, nachdem Sie str_replace ein Array haben, aber Sie haben es erneut decodiert, möglicherweise, wenn Sie $ jsondata = json_decode ($ json, true) entfernen; und zurückgeben $ json Sie erhalten ein Array

0

Ihre Zeichenfolge \"trackingnumber\":\"'42060106''9405510200830072094975'\" hat Syntaxfehler.

$result = '[{\"packagename\":\"Book+-+Outliers\",\"trackingnumber\":\"1Z2FF4063A00030059\",\"packageweight\":\"1.0000\",\"weightunit\":\"Lbs\",\"price\":\"16.9900\",\"suiteno\":[],\"user_id\":\"NOTFOUND\"},{\"packagename\":\"Book+-+Outliers\",\"trackingnumber\":\"1Z2FF4063A00030059\",\"packageweight\":\"1.0000\",\"weightunit\":\"Lbs\",\"price\":\"16.9900\",\"suiteno\":\"TY1000234\",\"user_id\":\"1000234\"},{\"packagename\":\"Book+-+David+%26+Goliath+%3B+Face+Cream+-+Clinique%2FGlycolix\",\"trackingnumber\":\"9.36E+21\",\"packageweight\":\"2.0000\",\"weightunit\":\"Lbs\",\"price\":\"18.0000\",\"suiteno\":\"TY1000234\",\"user_id\":\"1000234\"},{\"packagename\":\"Sunglasses+-+Valentino\",\"trackingnumber\":\"1.02E+33\",\"packageweight\":\"0.5000\",\"weightunit\":\"Lbs\",\"price\":null,\"suiteno\":\"TY1000431\",\"user_id\":\"1000431\"},{\"packagename\":\"Sunglasses+-+Safilo+group\",\"trackingnumber\":\"1.01E+33\",\"packageweight\":\"0.8000\",\"weightunit\":\"Lbs\",\"price\":null,\"suiteno\":\"TY1000431\",\"user_id\":\"1000431\"},{\"packagename\":\"Pigmentation+Color+Tobacco\",\"trackingnumber\":\"420601069405510200830072094975\",\"packageweight\":\"0.6300\",\"weightunit\":\"Lbs\",\"price\":\"320.0000\",\"suiteno\":[],\"user_id\":\"NOTFOUND\"}]'; 

$json_result = json_decode(stripslashes($result), true); 
$json=str_replace("\\",'', $result); 
$jsondata=json_decode($json,true); 

print_r($jsondata); 
Verwandte Themen