Удалить пробелы из запроса ОБНОВЛЕНИЕ - PullRequest
0 голосов
/ 31 декабря 2018

Я обновляю таблицу в базе данных 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;

1 Ответ

0 голосов
/ 31 декабря 2018

Эти пробелы не должны быть проблемой для вас.В спецификации IEFT JSON четко указано, что допускаются пробелы вокруг структурных символов ( : является одним из них):

Незначительные пробелы допускаются до или послелюбой из шести структурных символов.

  ws = *(
         %x20 /              ; Space
          %x09 /              ; Horizontal tab
          %x0A /              ; Line feed or New line
          %x0D )              ; Carriage return

В этом отношении представленный вами JSON полностью соответствует спецификации.

В Postgres есть функции для красивой печати JSON но, к сожалению, не привести его в порядок.

Всегда можно манипулировать строкой JSON с помощью регулярного выражения, но, как прокомментировал @TimBiegeleisen, это рецепт для катастрофы ... Ваш лучший вариант -переработать способ, которым вы потребляете JSON (для начала: почему пробелы являются проблемой?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...