从 JSON_OBJECT 输出中删除转义字符

问题描述 投票:0回答:2

所以问题如下,我有一个表,其中有一个 CLOB 列,它存储 JSON 字符串。假设列名称是 message。现在我正在生成另一个包含此消息字段以及一些额外字段的 JSON。如下图所示

{
  "groupId": "12345",
  "payloads": [
    {
      "message": "JSON",
      "key_value": "200",
      "kafkaTopic": "XXXX",
      "encryptInd": "Y"
    },
    {
      "message": "JSON",
      "key_value": "100",
      "kafkaTopic": "XXXX",
      "encryptInd": "Y"
    }
  ]
}

我使用 JSON_OBJECT 和 JSON_ARRAYAGG 生成最终的 JSON。查询看起来像

SELECT     JSON_OBJECT(KEY 'groupId' VALUE 12345,
                       KEY 'payloads' VALUE JSON_ARRAYAGG(JSON_OBJECT(KEY 'message'   VALUE gko.message,
                       KEY 'key_value' VALUE gko.key_value,
                       KEY 'kafkaTopic'  VALUE gkor.topic_name,
                       KEY 'encryptInd' VALUE gkor.encrypt_ind RETURNING CLOB)
                       RETURNING CLOB) RETURNING CLOB )

but the problem is JSON message with the tag 'message' is coming with escape "\" characters. like below

{"groupId":12345,"payloads":[{"message":"{\"code\":\"SALE\",\"header\":{\"tranType\":\"

请让我知道如何避免消息中的转义字符。

oracle plsql
2个回答
1
投票

按照以下方式更改查询后,转义字符不再出现

JSON_OBJECT(KEY 'message'   VALUE gko.message FORMAT JSON

0
投票

@redsoxlost 我尝试像你一样添加 KEY 和 VALUE,但仍然不起作用

© www.soinside.com 2019 - 2024. All rights reserved.