JSON 到 SQL Table 具有嵌套属性
JSON to SQL Table with nested properties
我正在尝试根据以下 JSON 结构开发数据库 table 结构。 “必填字段”很简单,我 table 为这些设置。但是,我坚持如何创建模式以将“配置”及其嵌套属性存储在 SQL 数据库中。任何帮助将不胜感激。谢谢
{
"requiredFields": [
"hello",
"world"
],
"configuration": {
"hello": {
"fallbacks": [
{
"type": "constant",
"value": "30"
}
]
},
"world": {
"fallbacks": [
{
"type": "fromInputFile",
"value": "patientFirstName"
},
{
"type": "fromInputFile",
"value": "subscriberFirstName"
},
{
"type": "constant",
"value": "alpha"
}
]
}
}
}
看起来您可以将其存储在一个 table
中
CREATE TABLE ConfigurationFallbacks (
field nvarchar(100),
type nvarchar(100),
value nvarchar(100)
);
您可能还想添加另一个 table 来仅存储 field
值,上面的 table 就是 foreign-keyed。
你可以这样插入:
INSERT ConfigurationFallbacks (field, type, value)
SELECT
keys.[key],
j.type,
j.value
FROM OPENJSON(@json, '$.configuration') keys
CROSS APPLY OPENJSON(keys.value, '$.fallbacks')
WITH (
type nvarchar(100),
value nvarchar(100)
) j;
第一个 OPENJSON
调用没有架构,因此它 returns 一组 key
value
对。
我正在尝试根据以下 JSON 结构开发数据库 table 结构。 “必填字段”很简单,我 table 为这些设置。但是,我坚持如何创建模式以将“配置”及其嵌套属性存储在 SQL 数据库中。任何帮助将不胜感激。谢谢
{
"requiredFields": [
"hello",
"world"
],
"configuration": {
"hello": {
"fallbacks": [
{
"type": "constant",
"value": "30"
}
]
},
"world": {
"fallbacks": [
{
"type": "fromInputFile",
"value": "patientFirstName"
},
{
"type": "fromInputFile",
"value": "subscriberFirstName"
},
{
"type": "constant",
"value": "alpha"
}
]
}
}
}
看起来您可以将其存储在一个 table
中CREATE TABLE ConfigurationFallbacks (
field nvarchar(100),
type nvarchar(100),
value nvarchar(100)
);
您可能还想添加另一个 table 来仅存储 field
值,上面的 table 就是 foreign-keyed。
你可以这样插入:
INSERT ConfigurationFallbacks (field, type, value)
SELECT
keys.[key],
j.type,
j.value
FROM OPENJSON(@json, '$.configuration') keys
CROSS APPLY OPENJSON(keys.value, '$.fallbacks')
WITH (
type nvarchar(100),
value nvarchar(100)
) j;
第一个 OPENJSON
调用没有架构,因此它 returns 一组 key
value
对。