我正在更新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;
答案 0 :(得分:1)
这些小白点对您来说应该不是问题。在the IEFT JSON specification中,明确指出结构字符( :
是其中之一)周围可以有空格:
在六个结构字符中的任何一个之前或之后都可以使用无关紧要的空格。
ws = *(
%x20 / ; Space
%x09 / ; Horizontal tab
%x0A / ; Line feed or New line
%x0D ) ; Carriage return
在这方面,您展示的JSON完全符合规范。
有functions in Postgres to pretty print JSON,但不幸的是没有整理。
总是可以使用正则表达式来操作JSON字符串,但是,正如@TimBiegeleisen所评论的那样,这是灾难的根源……最好的选择是重新设计使用JSON的方式(以:开头: ,为什么空格有问题?)