如何从数据库中检索数据并将其转换为对象?

时间:2016-09-20 05:57:29

标签: javascript json node.js postgresql

我正在使用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上使用,但我的其他数据需要该功能。 我不知道如何解决这个问题。任何人都可以帮我吗? 非常感谢!

1 个答案:

答案 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