查询以将未知值转换为json

时间:2018-08-31 11:19:32

标签: postgresql

我有类似的结构

select to_json('[{
   "11111":
       {
        "Number":{"11111"},
        "createdTime":"2018-06-25 10:30:11.047 +0530",
        "errorMessage":"invalid" 
       }                                            
    }]')

如果我尝试转换为json结构,则会出现以下错误:

  

错误:由于输入的类型未知,无法确定多态类型

我需要获取有效的json格式。

谢谢..

1 个答案:

答案 0 :(得分:0)

to_json用于转换例如记录或不是JSON值的其他值来适合JSON值。

您显然想将字符串值用作JSON。

为了能够做到这一点,您需要提供有效的JSON。 "Number":{"11111"}部分是无效的JSON,您需要删除花括号。

select '[{
   "11111":
       {
        "Number": "11111",
        "createdTime":"2018-06-25 10:30:11.047 +0530",
        "errorMessage":"invalid" 
       }                                            
    }]'::json

但是,如果只有一个值,为什么还要使用JSON数组呢?从显示的内容来看,单个JSON值更有意义:

select '{
   "11111":
       {
        "Number": "11111",
        "createdTime":"2018-06-25 10:30:11.047 +0530",
        "errorMessage":"invalid" 
       }                                            
    }'::json