我正在使用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
上使用,但我的其他数据需要该功能。
我不知道如何解决这个问题。任何人都可以帮我吗?
非常感谢!
答案 0 :(得分:1)
看起来您从查询中检索到的JSON的格式不正确,无法进行解析。为了避免这种情况,请确保存储到数据库中的JSON具有正确的JSON格式,以便进行解析。如果无法实现,则必须将从db获取的响应修改为正确的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