以下面的json为例,我想编写一个js代码,该代码仅返回包含特定名称/值对的对象:
用例1:仅返回包含名称-值对“ currency”:“ RON”的json对象
嵌套案例用例2:仅返回包含名称-值对“ product_id”的json对象:“ 1084929”
我想用普通的js而不是jquery来完成。
为什么这对我有帮助?有时我必须验证大型json文件,这将有助于根据特定用例将json“收缩”到某些令我感兴趣的对象。
{
"results": [
{
"currency": "RUB",
"status": "approved",
"order_id": "Y3411851",
"click_country_code": "RU",
"positions": [
{
"product_id": "1084929",
"amount": "2290.00"
}
],
"action_date": "2019-03-30 00:42:23",
"processed": 1,
"action_type": "sale",
"action": "Оплаченный заказ"
},
{
"currency": "RON",
"status": "declined",
"order_id": "Y3415290",
"click_country_code": "RO",
"positions": [
{
"product_id": "1052297",
"amount": "4390.00"
}
]
}
]
}
答案 0 :(得分:1)
尝试一下:
假设您的“结果”数组位于名为“ obj”的对象内,请首先执行以下操作:
let results = obj.results;
然后
情况1:
results.filter(obj=>obj.currency === "RON")
情况2:
results.filter(
obj =>
Array.isArray(obj.positions) &&
obj.positions.some(
position => position && position.product_id === "1084929"
)
);