2017-08-11 1 views
-6

Ich habe JSON String und ich möchte Produktdaten von dieser Zeichenfolge abrufen Wie kann ich dies erreichen. Bitte helfen Sie mir.So holen Sie Daten aus JSON String mit PHP

Unten ist mein String,

{"num_rows":2,"row":{"setting":"a:6:{s:4:\"name\";s:9:\"Featutred\";s:7:\"product\";a:2:{i:0;s:3:\"145\";i:1;s:3:\"148\";}s:5:\"limit\";s:1:\"5\";s:5:\"width\";s:3:\"200\";s:6:\"height\";s:3:\"200\";s:6:\"status\";s:1:\"1\";}"},"rows":[{"setting":"a:6:{s:4:\"name\";s:9:\"Featutred\";s:7:\"product\";a:2:{i:0;s:3:\"145\";i:1;s:3:\"148\";}s:5:\"limit\";s:1:\"5\";s:5:\"width\";s:3:\"200\";s:6:\"height\";s:3:\"200\";s:6:\"status\";s:1:\"1\";}"},{"setting":"a:6:{s:4:\"name\";s:17:\"Featured Products\";s:7:\"product\";a:2:{i:0;s:3:\"145\";i:1;s:3:\"146\";}s:5:\"limit\";s:1:\"4\";s:5:\"width\";s:3:\"200\";s:6:\"height\";s:3:\"200\";s:6:\"status\";s:1:\"1\";}"}]} 
+0

'json_decode' kann Ihnen dabei helfen – urfusion

+7

Möglich Duplikat von [JSON-Datei mit PHP parsen] (https://stackoverflow.com/questions/4343596/parsing-json-file-with-php) –

+1

Wie auch immer Sie mit serialisiertem PHP in JSON gelandet sind, bitte überdenken Sie es. – iainn

Antwort

1

Es ist eine Mischung aus JSON und PHP-serialisierten Daten.

<?php 
$string = '{"num_rows":2,"row":{"setting":"a:6:{s:4:\"name\";s:9:\"Featutred\";s:7:\"product\";a:2:{i:0;s:3:\"145\";i:1;s:3:\"148\";}s:5:\"limit\";s:1:\"5\";s:5:\"width\";s:3:\"200\";s:6:\"height\";s:3:\"200\";s:6:\"status\";s:1:\"1\";}"},"rows":[{"setting":"a:6:{s:4:\"name\";s:9:\"Featutred\";s:7:\"product\";a:2:{i:0;s:3:\"145\";i:1;s:3:\"148\";}s:5:\"limit\";s:1:\"5\";s:5:\"width\";s:3:\"200\";s:6:\"height\";s:3:\"200\";s:6:\"status\";s:1:\"1\";}"},{"setting":"a:6:{s:4:\"name\";s:17:\"Featured Products\";s:7:\"product\";a:2:{i:0;s:3:\"145\";i:1;s:3:\"146\";}s:5:\"limit\";s:1:\"4\";s:5:\"width\";s:3:\"200\";s:6:\"height\";s:3:\"200\";s:6:\"status\";s:1:\"1\";}"}]}';  

$dataObject = json_decode($string); 
foreach($dataObject->rows as $row){ 

    $productData = unserialize($row->setting); 
    print_r($productData); 

} 

Wird in

Array 
(
    [name] => Featutred 
    [product] => Array 
     (
      [0] => 145 
      [1] => 148 
     ) 

    [limit] => 5 
    [width] => 200 
    [height] => 200 
    [status] => 1 
) 
Array 
(
    [name] => Featured Products 
    [product] => Array 
     (
      [0] => 145 
      [1] => 146 
     ) 

    [limit] => 4 
    [width] => 200 
    [height] => 200 
    [status] => 1 
) 

HINWEIS führen: kein Fehler vorhanden ist oben im Code überprüft, da sie für Ihr spezielles Beispiel geschrieben werden. Wenn Sie nicht sicher sind, ob Ihre Eingabedaten korrekt sind (das ist normal), müssen Sie prüfen, ob JSON in Ordnung ist, ob Objekt Objekt ist und ob Eigenschaften benötigt werden.