簡體   English   中英

如何在 Oracle 中漂亮地格式化 JSON?

[英]How to pretty format JSON in Oracle?

我想知道是否有任何方法可以在 Oracle 中格式化 JSON(就像這個網站示例一樣)

在 XML 中,我使用了:

SELECT XMLSERIALIZE(Document XMLTYPE(V_RESPONSE) AS CLOB INDENT SIZE = 2)
INTO V_RESPONSE
FROM DUAL;     

而且效果很好。

在 Oracle 12c 中,您可以JSON_QUERY()函數JSON_QUERY() RETURNING ... PRETTY子句一起使用:

PRETTY :指定PRETTY以通過插入換行符和縮進來漂亮地打印返回字符串

表達 :

JSON_QUERY(js_value, '$' RETURNING VARCHAR2(4000) PRETTY)

DB Fiddle 上的演示

with t as (select '{"a":1, "b": [{"b1":2}, {"b2": "z"}]}' js from dual)
select json_query(js, '$' returning varchar2(4000) pretty) pretty_js, js from t;

產量:

PRETTY_JS                 | JS
--------------------------|----------------------------------------
{                         | {"a":1, "b": [{"b1":2}, {"b2": "z"}]}
  "a" : 1,                | 
  "b" :                   |
  [                       |
    {                     |
      "b1" : 2            | 
    },                    |
    {                     |
      "b2" : "z"          |
    }                     |
  ]                       |
}                         |

當您有幸使用 Oracle Database 19c 時,還有另一個用於漂亮打印的選項: JSON_serialize

這允許您在 VARCHAR2/CLOB/BLOB 之間轉換 JSON。 並包含一個 PRETTY 子句:

with t as (
  select '{"a":1, "b": [{"b1":2}, {"b2": "z"}]}' js
  from dual
)
select json_serialize (
         js returning varchar2 pretty
       ) pretty_js,
       js
from   t;

PRETTY_JS               JS
{                       {"a":1, "b": [{"b1":2}, {"b2": "z"}]}  
  "a" : 1,
  "b" :
  [
    {
      "b1" : 2
    },
    {
      "b2" : "z"
    }
  ]
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM