【问题标题】:How to acces a JSON key that looks like this: { ' "TimePeriod"': '2019-05-15'如何访问如下所示的 JSON 密钥:{ '"Time Period"': '2019-05-15'
【发布时间】:2019-05-17 07:25:00
【问题描述】:

这些天我对编码和学习很陌生。我遇到了一个最近在 Google 的帮助下无法解决的问题。我从 API 调用中得到一个 JSON。我解析了它,将它保存到 myObject 中,它看起来像这样:

{ 
  '"TimePeriod"': '2019-05-15',
  AveragePosition: '3.25',
  ConversionRate: '0',
  CostPerAssist: '0',
}

如您所见,TimePeriod 一词被包围,但用单引号和双引号括起来。一个奇怪的发现是,当我从控制台复制 JSON 时,它会向其中添加一个在控制台中不可见的空字符串:' "TimePeriod"'

我尝试像访问数组一样访问它:

myObject["TimePeriod"];
myObject['"TimePeriod"'];
myObject[' "TimePeriod"'];
myObject['\"TimePeriod\"']
myObject['\'\"TimePeriod\"\''] 

等等。但我无法获得日期值 2019-05-15。我显然可以访问低于第一个 TimePeriod 的所有其他值。

TimePeriod 得到的回报始终是:undefined

【问题讨论】:

  • 你可以像myObject['\"TimePeriod\"'] 一样转义",但是你得到它的引号很奇怪
  • 我已经尝试过这个,但它也给了我一个未定义
  • 在浏览器或 nodejs 上?在我的情况下它工作正常
  • 在nodejs上,我的目标是将所有的json值保存到一个mysql数据库中。
  • 我看到在浏览器中它也适用于我,但不适用于 NodeJS。有人知道如何让它在 NodeJS 中工作吗?

标签: node.js json string parsing


【解决方案1】:

我建议遍历对象以获取值。你可以通过 for...in 做到这一点:

for(var prop in myObject) {
  console.log(myObject[prop])
}

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

【讨论】:

    【解决方案2】:

    鉴于该对象,获取该属性的一种正确方法是['"TimePeriod"']

    ({ 
      '"TimePeriod"': '2019-05-15',
      AveragePosition: '3.25',
      ConversionRate: '0',
      CostPerAssist: '0',
    })['"TimePeriod"']
    

    产量

    "2019-05-15"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 2023-03-10
      • 1970-01-01
      • 2020-12-25
      • 2017-08-12
      相关资源
      最近更新 更多