解析JSON值
问题描述:
嗨我想解析这个值从动物园组件Joomla数据库。解析JSON值
{
"1f1292f5-0d8f-4c53-9260-07b074aa5bf1": { "0": { "value": "lit_ZetaPlus_zeta_potential_analyzer.html" } },
"26a0f41d-5514-4855-9cb2-175b662fe350": { "0": { "value": "ZetaPlus" } },
"9ab61998-c48e-45d7-8160-e563ba81b851": { "0": { "value": "Zeta Potential Analyzers" } },
"2616ded9-e88b-4b77-a92c-2c4c18bb995f": { "0": { } },
"08795744-c2dc-4a68-8252-4e21c4c4c774": { "0": { } },
"2e3c9e69-1f9e-4647-8d13-4e88094d2790": { "0": { } },
"fdcbebaa-e61a-462d-963e-aff74ff95499": { "0": { } }
}
4小时它转动到一个数组然后到对象后,我至今未能。希望能帮助我做错了什么。这是我到目前为止。
$decode = (array) json_decode($row['elements']);
foreach ($decode as $values) {
echo $values[0];
}
答
使用的json_decode
(documentation)的第二个参数:
$decoded = json_decode($row['elements'], true);
这给你解码JSON作为关联数组,而不是一个对象。
您对数组的转换不是递归的,因此它只会将顶层对象更改为数组。集合中的所有对象都将保持为对象。
如果您将JSON作为对象存在,您可能很难访问数字键,因为$value->0
不起作用。您需要改为$value->{'0'}
。所以关联数组可能是更简单的选择:-)