如何从数据库检索数据,并将其转为我的情况下的对象?
我正在使用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格式不适合它被parsing。 为了避免这种情况,请确保存储在数据库中的JSON具有适当的JSON格式,以便对其进行parsing。如果无法实现,则从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