2017-08-11 110 views
-6

我有json字符串,我想从该字符串获取产品数据我如何实现这一点。请有人帮助我。如何使用php从json字符串获取数据

下面是我的字符串,

{"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'可以帮助您在那 – urfusion

+7

可能[用PHP解析JSON文件]的副本(https://stackoverflow.com/questions/4343596/parsing-json-file-with-php) –

+1

但是,您已经结束了JSON中的序列化PHP,请重新考虑。 – iainn

回答

1

有JSON和PHP序列化数据的混合。

<?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); 

} 

会导致

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 
) 

:没有错误上面的代码检查,因为它是为特定的例子写的。如果您不确定您的输入数据是否正确(通常情况下),则需要检查JSON是否正常,对象是否是对象,并且是否具有所需属性等等。