【发布时间】:2015-08-13 02:12:04
【问题描述】:
我是 JavaScript 新手,我真的迷路了。以下是 PHP json_encode() 生成的一些数据(仅限于大多数相关键):
[
{
"product_option_id":"229",
"product_option_value":
[
{
"product_option_value_id":"21",
"option_value_id":"51",
"price":"1,22 €",
"price_prefix":"+"
},
{
"product_option_value_id":"22",
"option_value_id":"52",
"price":false,
"price_prefix":"+"
},
{
"product_option_value_id":"23",
"option_value_id":"53",
"price":"2,42 €",
"price_prefix":"+"
}
],
"option_id":"14",
"type":"radio",
"value":""
},
{
"product_option_id":"228",
"product_option_value":
[
{
"product_option_value_id":"19",
"option_value_id":"49",
"price":"1,22 €",
"price_prefix":"+"
},
{
"product_option_value_id":"20",
"option_value_id":"50",
"price":"2,42 €",
"price_prefix":"+"
}
],
"option_id":"13",
"type":"select",
"value":""
}
]
知道product_option_id 和product_option_value_id,我需要访问price 和price_prefix 值(在JavaScript 中)。
我该怎么做?我应该循环吗?
更新:
感谢您的回复。除非我遗漏了什么,否则in my case 数组(尽管它们可能很丑……)似乎比所有建议的解决方案都更 much more efficient(我将尝试另一种方法,使用 PHP 而不是根据我的需要格式化 JSON 对象使用“默认”的,但这里不是主题)。虽然我不喜欢添加库并且它比大多数其他解决方案慢一点,但我会接受 Matt 的解决方案,因为就 JSON 访问而言,它似乎真的让生活更轻松。但需要注意的是,Yeldard 和 Barmar 的(几乎是克隆的)解决方案比其他命题更快。
【问题讨论】:
-
你已经尝试过什么?你试过循环吗?
-
你必须使用嵌套循环。
-
@Andy :实际上问题更多的是“最有效的方法是什么?” — 我知道如何循环。我之前改写了发表,认为否则它可能会偏离主题,并且失去了意义,抱歉。
-
另外,我在发帖后就找到了Access / process (nested) objects, arrays or JSON。我正在阅读它,它确实有帮助(我考虑删除我的问题)但现在我没有看到任何关于按值访问的内容。
-
出于兴趣,在 perf 测试中测试预处理数组值 (ABC) 的目的是什么?那是您打算在 PHP 中创建的格式吗?
标签: javascript json key-value