2017-05-30 74 views
-3

noob here!我怎样才能获得“数量”值只有0打印与JSON和PHP:从json获取数量

{"XXXXXX":[],"XXXXXX":[],"total":[{"assetref":"","qty":0,"raw":0}]} 

我已经试过这

$m = json_encode('{"XXXXXX":[],"XXXXXX":[],"total":[{"assetref":"","qty":0,"raw":0}]}') 
$multi = json_decode($m, true); 
echo $multi->{'qty'}; 

而不工作

+1

.. var dump $ multi,你会明白为什么要做你在做什么是错误的 – ThisGuyHasTwoThumbs

回答

0

您已经有了JSON字符串,因此你不能使用json_encode

$multi = json_decode('{"XXXXXX":[],"XXXXXX":[],"total":[{"assetref":"","qty":0,"raw":0}]}', true); 
echo $multi['total'][0]['qty']; 
+0

它的工作原理!谢谢 –

0

json_encode被用于从弗吉尼亚州创建一个JSON字符串可变结构。

您已经拥有JSON字符串,因此您可以简单地使用$m = json_encode(json_string)来代替$m = json_string

此外,您在尝试访问qty变量时缺少一个深度级别(不参考total)。

(请注意,total是包含一个对象,然后把含有qty数组)

试一下:

$m = '{"XXXXXX":[],"XXXXXX":[],"total":[{"assetref":"","qty":0,"raw":0}]}'; 
$multi = json_decode($m, true); 
echo $multi['total'][0]['qty']; 
0

json_encode编码阵列成一个字符串,你想编码一个字符串。

在您的字符串上使用json_decode,以便它转换为数组。

$m = json_decode('{"XXXXXX":[],"XXXXXX":[],"total":[{"assetref":"","qty":10,"raw":0}]}'); 
$qty = $m->total[0]->qty; 
echo $qty;