Проблема при отображении BLOB-объекта в объект string / json (по мере необходимости) - PullRequest
0 голосов
/ 28 января 2020

У меня есть столбец Blob в таблице cassandra (устаревшие данные). Столбец может содержать json в любом из следующих форматов:

TYPE 1:

{
  "confgrtn_val": {
    "uid": "(?i)^(?=.*[a-z])[a-z0-9]{8,20}$",
    "pwd": "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])",
    "idshield": "(?i)^(?=.*[a-z])[a-z0-9]{8,20}$"
  }
}

(Сторона значения для ключа "confgrtn_val" - это Dynami c (может иметь любое количество пар ключ-валь)).

TYPE 2:

{
  "confgrtn_val": "xyz"
}

У меня есть конечная точка REST Api GET, которая имеет взять этот BLOB-объект и отправить ответ в точном формате после декодирования.

Поскольку существует несоответствие в "значении" для ключа "confgrtn_val", я не могу правильно отобразить его в ответе. Использование объекта типа Map в Object Mapper отображает его только в случае TYPE 1 . Использование объекта типа String в Object Mapper отображает оба, но у меня есть экранирующие символы в ответе, такие как:

    {
       "confgrtn_val": {
            "Transmit Policy": "{\"rm_id\":true,\"combined_uidpwd\":false,\"gone_fishing\":true}",
            "Regex": "{\"uid\":\"(?i)^(?=.*[a-z])[a-z0-9]{8,20}$\",\"pwd\":\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])\",\"idshield\":\"(?i)^(?=.*[a-z])[a-z0-9]{8,20}$\"}",
            "Server Killswitches": "{\r\n\"rm_id\":true,\r\n\"combined_uidpwd\":false,\r\n\"gone_fishing\":true\r\n}"
        } 
    }

Кроме того, если я хочу иметь реализацию конечной точки POST, как я должен go о обрабатываете этот сценарий для вставки?

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