使用json将db json转换为javascript对象。parse()失败
我有存储在mysql中的使用json将db json转换为javascript对象。parse()失败,javascript,json,ecmascript-6,Javascript,Json,Ecmascript 6,我有存储在mysql中的数据json 我做console.log(数据) 我看到 但我知道它不是javascript对象,因为console.log(typeof data)//string 如何将其转换为javascript对象?我知道 JSON.parse(data)但我得到了 位置1处JSON中意外的标记o已更新以修复换行符 问题是JSON对象需要括号{},但它们不在字符串中。尝试将引号包含在所有内容之外(注意字符串的引号)。类似这样的方法会奏效: const myJsonString =
数据json
我做console.log(数据)
我看到
但我知道它不是javascript对象,因为console.log(typeof data)//string
如何将其转换为javascript对象?我知道
JSON.parse(data)
但我得到了
位置1处JSON中意外的标记o
已更新以修复换行符
问题是JSON对象需要括号{}
,但它们不在字符串中。尝试将引号包含在所有内容之外(注意字符串的引号)。类似这样的方法会奏效:
const myJsonString = `{
"id": "1",
"sales": 10,
"msg": "Have a nice day"
}`
JSON.parse(myJsonString)
您得到了尾随逗号,将字符串复制并粘贴到web上的任何json验证器 正确的json格式应该是
{
"id": "1",
"sales": 10,
"msg": "\"Have a nice day\"" -> delete the comma here
}
这两者之间有很多关系:我有存储在mysql中的json数据。我做console.log(数据)。请分享这段代码。这让人费解,因为我认为你的JSON没有任何问题。消息后面有一个多余的逗号,但这不重要。真正奇怪的是,字符串甚至不包含
o
,更不用说位置1了。你是否认为数据是积极的?嗯,下面有一些可疑的答案…@Brad。。。我知道这不是规范,但出于某种原因,我认为parse更宽容。我使用的JavaJSON库并不介意如此草率,我想这也不介意。但是刚刚用js测试过,让我惊讶的是,你是对的,先生。thx,更正…布拉,已经编辑了一个愚蠢的打字错误。哦,很明显,括号在那里。而且,您的代码不会解析。。。你需要用反斜杠来避开换行符。在发布之前测试一下你发布的内容。括号在那里,但不在引号内,这是非常不同的。你说得对,你逃到了新行,试图让它更具可读性,但忘记了这一点。我做了测试,但一切都是内联的。谢谢:)
{
"id": "1",
"sales": 10,
"msg": "\"Have a nice day\"" -> delete the comma here
}