我正在使用 postgres row_to_json
函数来获取通过 JSON.stringify()
存储的数据。但是,当我检索它并执行 JSON.parse()
时,它给了我“unexpected token ,
”错误消息。
我来自前端的原始数据:
{
"company":[
{"name":"test company"},
{"ceo":"John"}
]
}
我执行 JSON.stringify(myData.company)
并将其存储到 postgres。
当我检索它时,我有 row_to_json
函数来获取数据。
console.log(myRetrieveData)
变成了
{"{\"name\":\"test company\"}","{\"ceo\":\"John\"}"}
我使用了 JSON.parse(myRetrieveData)
并得到了“unpexted token ,
”错误。
我理解 row_to_json
将其转换为 json 并且不能用于 JSON.parse
但我的其他数据需要该函数。
我不确定如何解决这个问题。谁能帮我解决这个问题?
非常感谢!
最佳答案
看起来您从查询中检索到的 JSON 格式不正确,无法对其进行解析。为了避免这种情况,请确保存储到数据库中的 JSON 是正确的 JSON 格式,以便对其进行解析。如果这无法实现,则必须将从数据库获得的响应修改为正确的 JSON。有了上面的数据,可以按如下方式完成。
var improperJson = '{"{\"name\":\"test company\"}","{\"ceo\":\"John\"}"}';
var properJson = improperJson.replace(/","/g, ",").replace(/^{"/, "[").replace(/"}$/, "]");
console.log(JSON.parse(properJson));//should give you the parsed JSON
关于javascript - 如何从数据库中检索数据并将它们转换为我的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39586690/