我有一个XML,我将其解析为JSON并将其放入数组中。因此,我得到了以下信息:
{
"result": {
"stats": {
"count":"0"
}
}
}
但我无法从数组中检索数据,尝试执行以下操作:
$yummy = json_decode($json);
echo $yummy->count; //0
谢谢你的帮助
发布于 2018-05-29 02:29:09
函数json_decode返回一个混合变量,您可以通过传递第二个参数true来强制它返回一个关联数组:
$yummy = json_decode($json, true);
然后,您可以像在数组中一样访问您的值:echo $yummy['result']['stats']['count'];
发布于 2018-05-29 02:23:08
该对象只有一个属性,名为result
,而不是count
。
您不能从顶层开始在数据结构中的任何点访问随机属性。您必须遍历您想要访问的数据的所有祖先。
发布于 2018-05-31 17:41:52
将XML转换为JSON意味着您将丢失信息和特性。实际上,转换并不是必需的。SimpleXML提供了类似的语法,而对于DOM,您可以使用Xpath表达式。
$xml = <<<'XML'
<response>
<result>
<stats>
<count>21</count>
</stats>
</result>
</response>
XML;
// SimpleXML maps elements to properties
$response = new SimpleXMLElement($xml);
var_dump(
(int)$response->result->stats->count
);
// DOM can use Xpath expressions to extract values
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
var_dump(
$xpath->evaluate('number(/response/result/stats/count)')
);
输出:
int(21)
float(21)
https://stackoverflow.com/questions/50571750
复制相似问题