javascript - 在 JSON 中查找多次出现的特定值

标签 javascript json

我有一个像这样的复杂 JSON:

{
  "a": {
    "b": {
      "c": {
        "price": {
          "type": "coin",
          "value": "currency"
        }
      }
    }
  },
  "e": {
    "f": {
      "price": {
        "type": "note",
        "value": "currency"
      }
    }
  },
  "price": {
    "type": "cents",
    "value": "dollars"
  }
}

我正在尝试编写一个 JavaScript 函数,它将在任何位置找到“价格”并提取它的“类型”和“值”。所以我的输出应该是:

"coin" : "currency"
"note" : "currency"
"cents" : "dollars"

最佳答案

您可以使用 for...in 循环创建递归函数以返回对象作为结果。

const data = {"a":{"b":{"c":{"price":{"type":"coin","value":"currency"}}}},"e":{"f":{"price":{"type":"note","value":"currency"}}},"price":{"type":"cents","value":"dollars"}}

function getPrice(data) {
  const result = {}
  for (let i in data) {
    if (typeof data[i] == 'object') Object.assign(result, getPrice(data[i]))
    if (i == "price") Object.assign(result, {
      [data[i].type]: data[i].value
    })
  }
  return result;
}

const result = getPrice(data);
console.log(result)

关于javascript - 在 JSON 中查找多次出现的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50840054/

相关文章:

javascript - 在javascript中创建对象时动态控制参数

javascript - Cookies 没有通过 relayjs 在 graphql 请求中传递到移动浏览器中

javascript - 访问 WebKit Devtools JavaScript 库

javascript - 错误 : Effect dispatched an invalid action: undefined

javascript - 将数字数组缩减为固定长度的较小数字数组

javascript - 如何使用 angularjs 从 json 文件填充选择选项

javascript - 如何使用 Javascript 更改 json 对象的结构

json - 如何将 Request->all() 与 Eloquent 模型一起使用

json - 如何从 Redis 的 ServiceStack 实现返回的 Json Datetime 格式转换为 .net Datetime?

java - 强制 jackson 在没有 JsonIgnore 的情况下忽略 isEmpty