PostgreSQL 9.2中將引入生成JSON數據功能
PostgreSQL開發者Andrew Dunstan
寫到:
引用
上周三,也就是PostgreSQL 9.2最后一個
commitfest到來的前四天,Robert Haas提交了一個名為
JSON for 9.2的補丁,欲將JSON列為PostgreSQL的核心類型。基本上,該補丁功能是對文本進行解析,確保它是有效的JSON數據,并加以存儲。這個功能我原本打算在9.2版本中放棄的,不過我考慮了下發現Robert的補丁太小了點,因此決定繼續并又添加了一些功能,包括:query_to_json()、 array_to_json()以及record_to_json(),完成了從ProstgreSQL生成JSON數據。
以下是來自回歸測試中的一些簡單示例:
SELECT query_to_json('select x as b, x * 2 as c from generate_series(1,3) x',false);
query_to_json
[{"b":1,"c":2},{"b":2,"c":4},{"b":3,"c":6}]
(1 row)
SELECT array_to_json('{{1,5},{99,100}}'::int[]);
array_to_json
[[1,5],[99,100]]
(1 row)
-- row_to_json
SELECT row_to_json(row(1,'foo'));
row_to_json
{"f1":1,"f2":"foo"}
(1 row)</pre>更簡單一點的:
SELECT row_to_json(q)
FROM (SELECT $$a$$ || x AS b,
y AS c,
ARRAY[ROW(x.,ARRAY[1,2,3]),
ROW(y.,ARRAY[4,5,6])] AS z
FROM generate_series(1,2) x,
generate_series(4,5) y) q;
row_to_json
{"b":"a1","c":4,"z":[{"f1":1,"f2":[1,2,3]},{"f1":4,"f2":[4,5,6]}]}
{"b":"a1","c":5,"z":[{"f1":1,"f2":[1,2,3]},{"f1":5,"f2":[4,5,6]}]}
{"b":"a2","c":4,"z":[{"f1":2,"f2":[1,2,3]},{"f1":4,"f2":[4,5,6]}]}
{"b":"a2","c":5,"z":[{"f1":2,"f2":[1,2,3]},{"f1":5,"f2":[4,5,6]}]}
(4 rows)</pre>Via
planetpostgresql
來自:
http://www.iteye.com/news/24032
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!