首页 > 解决方案 > 将 JSON 数组数据添加到临时表或真实表中

问题描述

我有这样的 JSON

DECLARE @json VARCHAR(MAX) = '{
    "prefix": "data",
    "body": [
        "Hello_1",
        "Hello_2",
        "Hello_3",
        "Hello_4"
    ]
}'

现在我只想将“body”数组添加到表中并从表中获取此输出

在此处输入图像描述

标签: sqlsql-serverstored-procedures

解决方案


DECLARE @json VARCHAR(MAX) = '{
    "prefix": "data",
    "body": [
        "Hello_1",
        "Hello_2",
        "Hello_3",
        "Hello_4"
    ]
}'

select value Name
from openjson(@json,'$.body')

或更明确的:

DECLARE @json VARCHAR(MAX) = '{
    "prefix": "data",
    "body": [
        "Hello_1",
        "Hello_2",
        "Hello_3",
        "Hello_4"
    ]
}'

select Name
from openjson(@json,'$.body')
with 
(
  Name  VARCHAR(20) '$'
)  

输出

Name
--------------------
Hello_1
Hello_2
Hello_3
Hello_4

(4 rows affected)

推荐阅读