我经历了一些示例/教程,试图使用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列,但是我在尝试...方面还很短[
[包含对象为[]
的数组{}
的数组