首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL:使用'‘解析JSON时出错

问PostgreSQL:使用'‘解析JSON时出错
EN

Stack Overflow用户
提问于 2021-08-25 09:28:21
回答 1查看 86关注 0票数 0

当我试图从PostgreSQL表中解析JSON时,你能告诉我如何修复这个错误吗?

代码语言:javascript
复制
ERROR: invalid input syntax for type json Hint: Token "'" is invalid. Where: JSON data, line 1: [{'...

我研究了这个问题,发现它是由于JSON中包含'‘的事实而出现的:

代码语言:javascript
复制
[{'name':'cc','desc':'What is your credit card number? I promise to keep it real secure like.','type':'string','regex':'\\d+','min_length':1,'max_length':16,'example':'736363627'},{'name':'height','desc':'How tall are you?','type':'int','min':4,'max':666,'example':55},{'name':'likescake','desc':'Do you like cake?','type':'bool'},{'name':'address','desc':'What is your address','type':'string','min_length':5,'example':'blk 6 lot 26 blah blah'},{'name':'single','desc':'Are you single?','type':'bool'},{'name':'weight','desc':'what is your weight in kgs?','type':'float','example':55}]

另一个JSON包含"":

代码语言:javascript
复制
[{"desc": "What is your credit card number? I promise to keep it real secure like.", "name": "cc", "type": "string", "regex": "\\d+", "max_length": 16, "min_length": 1}, {"max": "666", "min": "4", "desc": "How tall are you?", "name": "height", "type": "int"}, {"desc": "Do you like cake?", "name": "likescake", "type": "bool"}]

我尝试使用以下命令进行解析:

代码语言:javascript
复制
-- For multiple choice from JSON
SELECT
  s.projectid,
  s.prompttype,
  el.inputs->>'name' AS name,
  el.inputs->>'desc' AS desc,
  el.inputs->>'values' AS values,
  s.created,
  s.modified
FROM source_redshift.staticprompts AS s,
     jsonb_array_elements(s.inputs::jsonb) el(inputs);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 10:29:38

正如@Jim-Jones所说,JSON是无效的。

有许多在线和离线JSON验证工具。我建议使用它。

它可以帮助您检测问题的原因:是无效的JSON还是代码中的错误。

例如,JSON Formatter说它替换了错误的引号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68920289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档