【问题标题】:json from mySql databse to object array conversion [duplicate]从mySql数据库到对象数组的json转换[重复]
【发布时间】:2021-08-10 13:52:15
【问题描述】:

我试图从我的 MySql 数据库中获取一个对象数组,但是我不断得到“未定义”的结果,我不知道为什么 我的代码:

database.query(sql, (err, rows)=>{
    var data = Object.values(JSON.parse(JSON.stringify(rows)))
    console.log(data[0].type)
})

每当我控制台记录我的“数据”变量时,我都会得到:

[
  {
    data: '[{"type": "c#", "script": "csharp script"}, {"type": "javascript", "script": "javascript script"}, {"type": "html", "script": "html script"}]'
  }
]

这对我来说似乎是正确的,但我不确定现在该做什么。 任何帮助将不胜感激

【问题讨论】:

  • 首先,不需要再进行字符串化再解析。这确实会创建一个副本,但这在这里毫无意义。理论上你需要rows[0].data[0].type,但似乎.data 是一个字符串,所以你需要JSON.parse(rows[0].data)[0].type

标签: javascript mysql arrays json javascript-objects


【解决方案1】:

您需要的实际data 位于第一个元素的.data 属性内。它是一个字符串,因此您需要对其进行解析以用作对象数组。

工作示例

let yourData = [{
  data: '[{"type": "c#", "script": "csharp script"}, {"type": "javascript", "script": "javascript script"}, {"type": "html", "script": "html script"}]'
}]

let data = JSON.parse(yourData[0].data)
console.log(data[0].type)

【讨论】:

  • 根据控制台输出,.data 好像是 JSON,所以这行不通。
  • 我错过了报价,更新了答案。
  • 反正都是骗子。
猜你喜欢
  • 2016-08-26
  • 2013-08-02
  • 2016-07-29
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 2016-09-07
  • 1970-01-01
相关资源
最近更新 更多