<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                {% raw %} # 9.15\. JSON 函數和操作符 [Table 9-39](#calibre_link-2229)顯示了可以用于JSON (參閱[Section 8.14](#calibre_link-1753))數據的操作符。 **Table 9-39\. JSON 操作符** | 操作符 | 右操作數的類型 | 描述 | 示例 | | --- | --- | --- | --- | | `-&gt;` | int | 獲取JSON數組元素 | `'[1,2,3]'::json-&gt;2` | | `-&gt;` | text | 獲取JSON對象字段 | `'{"a":1,"b":2}'::json-&gt;'b'` | | `-&gt;&gt;` | int | 獲取JSON數組元素為文本 | `'[1,2,3]'::json-&gt;&gt;2` | | `-&gt;&gt;` | text | 獲取JSON對象字段為文本 | `'{"a":1,"b":2}'::json-&gt;&gt;'b'` | | `#&gt;` | array of text | 在指定的路徑獲取JSON對象 | `'{"a":[1,2,3],"b":[4,5,6]}'::json#&gt;'{a,2}'` | | `#&gt;&gt;` | array of text | 在指定的路徑獲取JSON對象為文本 | `'{"a":[1,2,3],"b":[4,5,6]}'::json#&gt;&gt;'{a,2}'` | [Table 9-40](#calibre_link-2230)顯示了可以用于創建和操作JSON (參閱[Section 8.14](#calibre_link-1753))數據的函數。 **Table 9-40\. JSON 支持函數** | 函數 | 返回類型 | 描述 | 示例 | 示例結果 | | --- | --- | --- | --- | --- | | `array_to_json(anyarray [, pretty_bool])` | `json` | 作為JSON返回數組。一個PostgreSQL多維數組成為一個JSON數組的數組。 如果`pretty_bool`為 true,將在維度1的元素之間添加換行符。 | `array_to_json('{{1,5},{99,100}}'::int[])` | `[[1,5],[99,100]]` | | `row_to_json(record [, pretty_bool])` | `json` | 作為JSON返回行。如果`pretty_bool`為 true,將在第一級元素之間添加換行符。 | `row_to_json(row(1,'foo'))` | `{"f1":1,"f2":"foo"}` | | `to_json(anyelement)` | `json` | 作為JSON返回值。如果不是內建的數組類型,那么將會把這個類型轉換為`json`類型, 轉換函數將用于實現這個轉換。否則,除了數字,布爾值或空值,其他的任何值將用文本表示, 并且使用逃逸和雙引號以使其是合法的JSON類型。 | `to_json('Fred said "Hi."'::text)` | `"Fred said \"Hi.\""` | | `json_array_length(json)` | `int` | 返回最外層的JSON數組元素的數量。 | `json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]')` | `5` | | `json_each(json)` | `SETOF key text, value json` | 擴展最外層的JSON對象為一組鍵/值對。 | `select * from json_each('{"a":"foo", "b":"bar"}')` | ``` key &#124; value -----+------- a &#124; "foo" b &#124; "bar" ``` | | `json_each_text(from_json json)` | `SETOF key text, value text` | 擴展最外層的JSON對象為一組鍵/值對。返回值為text類型。 | `select * from json_each_text('{"a":"foo", "b":"bar"}')` | ``` key &#124; value -----+------- a &#124; foo b &#124; bar ``` | | `json_extract_path(from_json json, VARIADIC path_elems text[])` | `json` | 返回由`path_elems`指出的JSON對象。 | `json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','f4')` | `{"f5":99,"f6":"foo"}` | | `json_extract_path_text(from_json json, VARIADIC path_elems text[])` | `text` | 返回由`path_elems`指出的JSON對象。 | `json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','f4', 'f6')` | `foo` | | `json_object_keys(json)` | `SETOF text` | 返回JSON對象中的一組鍵。只顯示"外部"對象。 | `json_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"}}')` | ``` json_object_keys ------------------ f1 f2 ``` | | `json_populate_record(base anyelement, from_json json, [, use_json_as_text bool=false]` | `anyelement` | 擴展`_from_json_`里的對象到一行,這行的字段匹配基礎定義的記錄類型。 轉換將會很好的進行;沒有與`_from_json_`里的鍵對應的基礎字段將會缺省為null。 如果一個字段指定了多次,那么將使用最后一個值。 | `select * from json_populate_record(null::x, '{"a":1,"b":2}')` | ``` a &#124; b ---+--- 1 &#124; 2 ``` | | `json_populate_recordset(base anyelement, from_json json, [, use_json_as_text bool=false]` | `SETOF anyelement` | 擴展`_from_json_`里面最外層的對象集到一個集合, 這個集合的字段匹配基本定義的記錄類型。轉換將會很好的進行; 沒有與`_from_json_`里的鍵對應的基礎字段將會缺省為null。 如果一個字段指定了多次,那么將使用最后一個值。 | `select * from json_populate_recordset(null::x, '[{"a":1,"b":2},{"a":3,"b":4}]')` | ``` a &#124; b ---+--- 1 &#124; 2 3 &#124; 4 ``` | | `json_array_elements(json)` | `SETOF json` | 擴展一個JSON數組到一組JSON元素的集合。 | `json_array_elements('[1,true, [2,false]]')` | ``` value ----------- 1 true [2,false] ``` | > **Note:** `json`函數和操作符比輸入函數類型可以實施更加嚴格的有效性需求。特別的,他們的檢查更為緊密, 任何使用Unicode代理對到Unicode基本多文種平面以外的指定字符是正確的。 > **Note:** 這些函數和操作符中的許多將轉換JSON文本中的Unicode逃逸到相應的UTF8字符(當數據庫編碼為UTF8時)。 在其他編碼模式下,轉義序列必須是ASCII字符,任何其他在Unicode逃逸序列中的代碼點將導致一個錯誤。 通常,如果可能的話,最好避免JSON中Unicode逃逸和非UTF8數據庫編碼混合。 > **Note:** [hstore](#calibre_link-382)擴展從`hstore`轉換到`json`,所以轉換了的`hstore` 值作為JSON對象顯示,而不是字符串值。 參閱[Section 9.20](#calibre_link-1641)獲取有關聚集函數`json_agg` 的信息,`json_agg`有效的聚合記錄值為JSON。 {% endraw %}
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看