PostgreSQL将SQL XML编码转换为SQL JSON编码

问题描述

如何将XML sql编码转换为JSON sql编码。 示例:

SELECT XMLELEMENT(NAME "ORDER",XMLFOREST(PURCHASE_ORDER AS OD_NO)) AS "XMLELEMENT" FROM 
TBL_SALES

现在如何将XMLELEMENTXMLFOREST转换为JSON函数。请帮我。我们在XMLELEMENT函数中是否有等效的XMLFOREST / JSON

xml:

<order><OD_NO>4524286167</OD_NO><order_date>2020-06-15</order_date><sales_office>CH</sales_office></order> 

json:

{ "OD_NO": "4524286167","order_date": "2020-06-15","sales_office": "CH" }

解决方法

row_to_json会做这件事。

您可以按照以下方式编写查询:

select row_to_json(x) from 
(select purchase_order "OD_NO",order_date,sales_office from  tbl_sales ) x

如果您想将所有结果汇总到一个JSON数组中,请使用JSON_AGGrow_to_json

select json_agg(row_to_json(x)) from 
(select purchase_order "OD_NO",sales_office from  tbl_sales ) x

DEMO

,

这些Postgresql functions
json_build_object(VARIADIC "any")
jsonb_build_object(VARIADIC "any")
在语义上接近XMLELEMENT,并且对于“ embroidering ”来说非常方便,无论您需要什么复杂的JSON。您的查询可能如下所示:

select json_build_object
(
  'OD_NO',order_number,-- or whatever the name of the column is
  'order_date','sales_office',sales_office
) as json_order
from tbl_sales;

但是我不认为有XMLFOREST等效项。