解析包含多个数组和键的JSON列

问题描述 投票:1回答:1

我经历了一些示例/教程,试图使用SQL Server(2017)中的JSON函数来解析包含多个数组的JSON列,但是我仍然在试图将以下JSON格式解析为如下所示。

出于示例目的-我将在下面的代码示例中将此声明为@json变量。我已经尝试了多次迭代来尝试提取此值,所以在尝试解析下面显示的示例时,我在此处省略了此位置。

DECLARE @json nvarchar(max)
SET @json = N'[
  [
    {
      "Title": "Title 1",
      "Property": "String1",
      "Value": "123456",
      "ValueArray": [
        ""
      ],
      "SecondaryValue": null,
      "SelectedItem": null
    },
    {
      "Title": "Title 2",
      "Property": "String2",
      "Value": "54321",
      "ValueArray": [
        ""
      ],
      "SecondaryValue": null,
      "SelectedItem": null
    }
  ],
  [
    {
      "Title": "Title 3",
      "Property": "String3",
      "Value": "33333333",
      "ValueArray": [
        ""
      ],
      "SecondaryValue": null,
      "SelectedItem": null
    },
    {
      "Title": "Title 4",
      "Property": "String4",
      "Value": "44444444",
      "ValueArray": [
        ""
      ],
      "SecondaryValue": null,
      "SelectedItem": null
    }
  ]
]'
SELECT JSON_VALUE(j.value, '$.Title') AS 'Title Output', j.[key], j.Value, JSON_VALUE(j.value, '$.Title[0]') AS Title1
--STRING_AGG('Value: ' + v.[value] + ' Title: ' + t.[value], ', ') AS [Values]
FROM OPENJSON(@json) j

关于如何将JSON格式存储到列中,我希望获得如下所示的所有Title和Values。

预期输出列

标题1-123456,标题2-54321,标题3-33333333,标题4-44444444

我还尝试在解析数据之前更改JSON字符串,例如预先添加数组名称以帮助标识集合成员的位置,但是我只能获得第一个Title&Value。 >

我经历了一些示例/教程,试图使用SQL Server(2017)中的JSON函数来解析包含多个数组的JSON列,但是我在尝试...方面还很短[

sql json sql-server-2017 string-parsing
1个回答
1
投票

[包含对象为[]的数组{}的数组

© www.soinside.com 2019 - 2024. All rights reserved.