【问题标题】:How to retrieve data from DB and turn them to object in my case?在我的情况下,如何从数据库中检索数据并将它们转换为对象?
【发布时间】:2017-01-27 22:35:27
【问题描述】:

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

【问题讨论】:

    标签: javascript json node.js postgresql


    【解决方案1】:

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

    【讨论】:

    • 你能从你的代码中添加properJson的console.log输出吗
    • 当然。 [{\"name\":\"测试公司\"},{\"ceo\":\"john\"}]
    • JSON.parse 似乎适用于上述字符串
    • 感谢现在发现问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    相关资源
    最近更新 更多