我正在scala /play框架中构建一个调查应用程序,并使用postgres9.4和anorm。我在其他地方使用jsonb作为数据类型,但在一个位置我想使用jsonb[],认为这种类型是jsonb值的数组。我的json结构如下所示:
[
{"guitar":{"passion":3,
"expertise":5,
"willingToTeach":false,
"lookingForOthers":false
}
},
{"soccer":{"passion":3,
"expertise":3,
"willingToTeach":true,
"lookingForOthers":true
}
}
]
这里每个兴趣都是一个json结构。我已经能够使用jsonb
作为数据类型将json响应值添加到pgsql中的其他列,但当我尝试使用jsonb[]
时,我收到了抱怨:[PSQLException:未知类型jsonb[]。]
在pgadmin3中,它从字面上显示了我尝试插入的列的确切数据类型:jsonb[]
。在我的anorm插入代码中,我尝试设置类型:
val pgObject = new PGobject();
pgObject.setType("jsonb")
但是我得到了这个错误:
[PSQLException: ERROR: column "passions" is of type jsonb[] but expression is of type jsonb
Hint: You will need to rewrite or cast the expression.
Position: 43]
我试着查找这个,但我甚至找不到所有可以用作pgObject参数的字符串值。setType()。除了使用setType()方法设置类型之外,我还不确定如何将表达式从jsonb
转换为jsonb[]
。
任何帮助都将不胜感激。
许多框架不支持SQL数组。阵列有一个SQL标准,但大多数客户机都部分支持或根本不支持它。
在PostgreSQLtype[]
是type
的数组。因此jsonb[]
是jsonb
的数组。您的客户端似乎不理解这一点——要么它不支持数组,要么它在每个数据类型的基础上具有特殊大小写的数组支持。
幸运的是,您不需要jsonb
的SQL数组,因为jsonb
存储JSON的JavaScript序列化对象符号。JSON定义了对象和数组。因此,在jsonb
字段中可以有一个对象数组。不需要SQL数组。
这是一个包含jsonb
值的SQL数组,其中每个jsonb
值都是一个对象(字典):
test=> SELECT ARRAY[
'{ "x": 1, "y": 2 }',
'{ "a": 3, "b": 4 }'
] :: jsonb[];
array
-----------------------------------------------------
{"{ \"x\": 1, \"y\": 2 }","{ \"a\": 3, \"b\": 4 }"}
(1 row)
它的数据类型为jsonb[]
。请注意PostgreSQL数组[…]的使用
构造函数表示法,并注意包含
json
对象的'string literals'
在数组中。
这是一个
jsonb
字段,包含一个对象数组:
test=> SELECT
'
[
{ "x": 1, "y": 2 },
{ "a": 3, "b": 4 }
]
' :: jsonb;
jsonb
--------------------------------------
[{"x": 1, "y": 2}, {"a": 3, "b": 4}]
(1 row)
请注意,它是一个字符串文本,包含对象数组的json序列化。
问题内容: 我正在尝试以下查询: (+1.0仅用于强制转换浮动。我的实际查询要复杂得多,此查询只是问题的测试用例。) 我得到了错误: 如果我添加显式强制转换: 错误变为: 我知道大多数jsonb值不能转换为浮点数,但是在这种情况下,我知道纬度都是JSON编号。 是否有一个将jsonb值强制转换为浮点数(或为不可广播的返回NULL)的函数? 问题答案: 要从中获得价值,有两种操作。第一个将返回。第二
null 当我创建正文部分时,我是否应该显式地设置top mime消息的内容类型,然后设置每个正文部分? 如果是,在上面的例子中它们应该是什么? 对于html建议,对于附件建议,对于内联建议。我正在使用所有这些,那么对于完整的消息和不同的主体部分应该是什么内容类型? 通过上面的代码,我得到了正确的html文本,纯文本,内联图像和附件在正确的地方与James集成的ThunderBird。 因此,我不
问题内容: 我正在使用Flask,并且从get请求返回一个XML文件。如何将内容类型设置为xml? 例如 问题答案: 尝试这样: 实际的Content-Type基于mimetype参数和字符集(默认为UTF-8)。
问题内容: 我正在使用poi 3.6 我能够正确创建Excel。但是,当我尝试将单元格类型设置为number时,它总是为我提供常规的单元格类型。 即在新创建的excel中,当我右键单击并设置单元格格式->我总是发现数字是General。 我的代码是这样的 您能建议一下这里缺少什么吗? 问题答案: 您也可以尝试这种方法: 当然,请查看有关数据格式的文档和示例。
我在实体类中使用Spring Boot和Hibernate JPA,代码如下:, 其中生成了一个集合表user\u files。但是,默认的列类型是VARCHAR(255),有时用户数据可能比这更长。我的问题是如何定义此表以将BLOB或TEXT用于列?我试图在那里直接插入Lob注释,但没有成功。
问题内容: 我没有找到使用JPA(EclipseLink)从PostgreSQL映射JSON和JSONB数据类型的方法。是否有人将这种数据类型与JPA结合使用,可以给我一些工作示例吗? 问题答案: 所有的答案都帮助我达成了最终的解决方案,该解决方案可以用于JPA,而不是专门用于EclipseLink或Hibernate。