我使用postgresrow_to_json函数来获取通过JSON.stringify()存储的数据。但是,当我检索并执行JSON.parse()时,它会给我“unexpected token ,”错误消息。
我的前端原始数据:

{
  "company":[
     {"name":"test company"},
     {"ceo":"John"}
   ]
}

我会把它储存在邮局。
当我检索它时,我有JSON.stringify(myData.company)函数来获取数据。
row_to_json变成
{"{\"name\":\"test company\"}","{\"ceo\":\"John\"}"}

我使用了console.log(myRetrieveData)并得到了“JSON.parse(myRetrieveData)”错误。
我理解unpexted token ,将其转换为json,不能在row_to_json上使用,但该函数是我的其他数据所必需的。
我不知道怎么解决这个问题。有人能帮我吗?
谢谢!

最佳答案

看起来您从查询中检索到的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

09-25 20:31