如何在php中解析Json数据?

时间:2014-07-18 08:11:41

标签: php ajax json wordpress parsing

[{"name":"se","value":"test1"},{"name":"model","value":"test2"},{"name":"filter_preference","value":"test3"},{"name":"seved","value":"test4"}]

我有json,我想解析它,并获得“segment”=> “测试1” 等等。

我已经完成了这个

$json2= json_encode($loadFilter);
    $json2 = json_decode($json2, true);

    foreach ($json2->$key as $value)
    {
        echo $key ."=>".$value;
    }

总是获得为foreach()提供的无效参数!!!

我正在做WP ajax回调。

3 个答案:

答案 0 :(得分:3)

访问$ key时,您的foreach语法错误。

foreach ($json2 as $key => $value) {
    echo $key ."=>".$value;
}

根据您的评论进行修改:

你没有给出真实的"在您的问题格式中,您的数组包含在' filter_preference'中,因此您必须迭代$ json2 [' filter_preference']。

foreach ($json2['filter_preference'] as $key => $value) {
    echo $key ."=>".$value;
}

答案 1 :(得分:1)

您需要映射子数组的键值。 试试这个:

   foreach ($json2 as $key=>$value)
        {
            echo $key ."=>".$value;
        }

答案 2 :(得分:0)

这里有一个奇怪的建议:

如果要为此使用数组,则可以使用以下代码将对象转换为数组:

function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
            * Return array converted to object
            * Using __FUNCTION__ (Magic constant)
            * for recursive call
            */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }

$array_new = objectToArray($json2);

http://wonderphp.wordpress.com/2014/03/20/convert-object-to-array-and-vice-versa/