【问题标题】:Get qty from json [duplicate]从json获取数量[重复]
【发布时间】:2017-05-30 15:53:37
【问题描述】:

这里是菜鸟!如何使用 json 和 php 从以下位置获取 'qty' 值以仅打印 0:

{"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'};

而且不工作

【问题讨论】:

  • .. var dump $multi 你会明白为什么做你正在做的事情是错误的

标签: php arrays json


【解决方案1】:

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

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

【讨论】:

  • 有效!谢谢
  • ????????????
【解决方案2】:

json_encode 用于从变量创建 JSON 字符串。

您已经有一个 JSON 字符串,因此您可以简单地说 $m = json_string,而不是使用 $m = json_encode(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'];

【讨论】:

    【解决方案3】:

    json_encode 将数组编码为字符串,您正在尝试对字符串进行编码。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-30
      • 2021-10-18
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多