json_decode奇怪的行为

时间:2014-07-24 10:18:40

标签: php json

我有这段代码

$value = get_post_meta( $post->ID, 'allSet', true );

//echo $value prints {"0":{"typ":"","pocet":"1","nazev":"asfdsaf"}}

$neco = '{"0":{"typ":"","pocet":"1","nazev":"asfdsaf"}}';

$neco = json_decode($value, true);
print_r($neco);

所以它什么都不打印,var_dump打印出来。

但如果我尝试解码json_decode($neco);,它会按原样打印数组。

$ value和$ neco 具有相同的值时,有人知道这里有什么问题吗?

非常感谢您的帮助

3 个答案:

答案 0 :(得分:1)

你的代码中有一个拼写错误。试试这个

$neco = '{"0":{"typ":"","pocet":"1","nazev":"asfdsaf"}}';
$value= json_decode($neco, true);
print_r($value);

您尝试过$neco = json_decode($value, true);。 json_decode必须是$neco而不是$value,因为您在变量$neco中拥有json,因为您在进行解码之前正在初始化它。因此,您必须解码$neco而不是$value

答案 1 :(得分:0)

你需要传递json字符串来解码,即

json_decode($neco, true);

答案 2 :(得分:0)

更改此

$value = get_post_meta( $post->ID, 'allSet', true );

$value = get_post_meta( $post->ID, 'allSet', false );

如果我们将值设置为true,它将只返回单个参数,而不是数组