如何从数据库检索数据,并将其转为我的情况下的对象?

我正在使用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