繁体   English   中英

如何从json对象获取值到php数组

[英]How to get values from json object to php array

我正在为允许用户打印项目报告(使用 fpdf 库)的应用程序编写 php 文件。

目的是从数据库中获取数据,然后动态构建 PDF 文件。

数据存储在 json 中。

几乎所有数据都可以,但有些我无法达到。 这是一个例子:首先,我已经这样做了:

$Array['roof_coordinates'] = json_decode($Array['roof_coordinates'], false);

要获得“A523500”的数字“nb”,我这样做:

$Array['roof_coordinates']->results->packingList->total->A523500->nb;

我究竟做错了什么 ?

  "roofCoordinates": {

    "results": {

      "packingList": {

        "total": {

          "A523500": {

            "ref": "STRA523500",
            "nb": 16

          },
          "A523120": {

            "ref": "STRA523120",
            "nb": 0

          },
          "A522100": {

            "ref": "STRA522100",
            "nb": 8

          },

        },

      }

    },

}

我试图将“true”传递给 json_decode 以将对象转换为关联数组,但它似乎不起作用......

任何帮助都会很棒! 先感谢您 ;)

确保您正确访问结果数据结构,无论您解码为数组还是对象,它都应该有效。

<?php
$json = <<<END
{
  "roofCoordinates": {
    "results": {
      "packingList": {
        "total": {
          "A523500": {
            "ref": "STRA523500",
            "nb": 16
          },
          "A523120": {
            "ref": "STRA523120",
            "nb": 0
          },
          "A522100": {
            "ref": "STRA522100",
            "nb": 8
          }
        }
      }
    }
  }
}
END;

$arrayResults = json_decode($json, true);
$nbFromArray = $arrayResults['roofCoordinates']['results']['packingList']['total']['A523500']['nb'];

$stdClassResults = json_decode($json);
$nbFromStdClass =  $stdClassResults->roofCoordinates->results->packingList->total->A523500->nb;

assert($nbFromArray==16, 'Value should equal 16');
assert($nbFromArray==$nbFromStdClass, 'Values from either json_decode method should be equal');

echo 'From array: '.$nbFromArray.PHP_EOL;
echo 'From stdClass: '.$nbFromStdClass.PHP_EOL;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM