[英]Remove spaces from UPDATE query
我正在更新postgres数据库中的表,但是我需要删除“:”字符串值之间的一些空格。
我需要一个这样的字符串:
{"value1":"answer1", "value2":"answer2", "nickname":"name1", "color":"red" }
但是下面的代码给了我一些这样的空间:
{"value1":"answer1", "value2":"answer2", "nickname" : "name1", "color" : "red" }
这是我的更新代码:
UPDATE t
SET json_col = (Json_build_object ('nickname',nick,'color',color) :: text,'{', '' ) ) :: json;
这些小白点对您来说应该不是问题。 在IEFT JSON规范中 ,明确指出结构字符之间可以有空格( :
是其中之一):
六个结构字符中的任何一个之前或之后都可以使用无意义的空格。
ws = *(
%x20 / ; Space
%x09 / ; Horizontal tab
%x0A / ; Line feed or New line
%x0D ) ; Carriage return
在这方面,您展示的JSON完全符合规范。
Postgres中有一些函数可以漂亮地打印JSON,但不幸的是没有整理它。
总是可以使用正则表达式来操作JSON字符串,但是,正如@TimBiegeleisen所评论的那样,这是灾难的根源。您最好的选择是改写使用JSON的方式(以:,为什么是空间有问题吗?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.