1

您好我正在尝试从动物园组件 Joomla 数据库中解析此值。

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

1 回答 1

3

使用json_decode文档)的第二个参数:

$decoded = json_decode($row['elements'], true);

这为您提供了作为关联数组而不是对象的解码 JSON。

您对数组的强制转换不是递归的,因此它只会将顶级对象更改为数组。集合中的所有对象都将保留为对象。

如果您将 JSON 保留为对象,则可能难以访问数字键,因为这是$value->0行不通的。你需要这样做$value->{'0'}。所以关联数组可能是更简单的选择:-)

于 2013-10-08T09:23:26.610 回答