繁体   English   中英

从UPDATE查询中删除空格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM