【问题标题】:SQL Server Convert XML to JSONSQL Server 将 XML 转换为 JSON
【发布时间】:2016-12-15 06:03:43
【问题描述】:

我想将 XML 列转换为 JSON 字符串。到目前为止,我在 SO 和 Google 上尝试了几个选项,但它们都将表格转换为 JSON 字符串。有什么方法可以在不先将 xml 转换为表格的情况下做到这一点?

版本:SQL Server 2014 (SP2)

declare @xml xml
select @xml = xml_column from mytable
select some_potential_function(@xml) as JSON_String

PS:当我在其中存储具有不同级别数的树时,我的 xml 会动态增长。这就是为什么将其转换为表格可能不是一种选择的原因。

【问题讨论】:

标签: sql sql-server json xml


【解决方案1】:

您可以尝试在 XML 类型上使用“.nodes()”方法来执行此操作 (https://msdn.microsoft.com/en-us/library/ms188282.aspx) 以及 SQL Server 2016 及更高版本中的 FOR JSON AUTO (https://msdn.microsoft.com/en-us/library/dn921882.aspx):

DECLARE @xml XML = '<?xml version="1.0"?>
    <catalog>
       <book id="bk101">
          <author>Gambardella, Matthew</author>
       </book>
       <book id="bk102">
          <author>Ralls, Kim</author>
       </book>
    </catalog>''';
SELECT b.value('@id', 'nvarchar(MAX)') AS book
    ,b.value('author[1]', 'nvarchar(MAX)') AS author
    -- the rest of your columns
FROM @xml.nodes('/catalog/book') AS a(b)
FOR JSON AUTO

【讨论】:

  • 感谢您的回复。正如我在问题中指出的那样,我的 SQL Server 版本是 2014。所以这对我来说不是一个选择。
猜你喜欢
  • 2011-04-28
  • 2021-08-31
  • 1970-01-01
  • 2018-12-22
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多