【问题标题】:Getting the Keys and Values from a JSON array in SQL Server 2016从 SQL Server 2016 中的 JSON 数组获取键和值
【发布时间】:2020-01-08 18:02:31
【问题描述】:

在 SQL Server 2016 中的过程中工作,并且正在通过 nvarchar 变量传递 JSON 对象。变量看起来像这样

'{"and":[{"agentId":1},{"status":"In Progress"},{"or":[{"who":{"like":"%Alex%" }},{"status":"已关闭"}]}]}'

我需要把它放到这样的表中

SELECT x.[Key], x.[Value] 
FROM OPENJSON(@whereString, '$') AS x;

这一直有效,直到它到达嵌入式数组。我不会提前知道键名,所以我认为这会处理 JSON_Value 和 JSON_Query

【问题讨论】:

  • 您提供给我们的 JSON 不完整。
  • 为了完整性更新了 JSON 字符串

标签: arrays json sql-server-2016


【解决方案1】:

我做错了,比我需要的要困难得多。

使用查询:

SELECT  x.[key] as keyString, x.[Value] as valueString FROM OPENJSON(@JSONString, '$') AS x

会给我一个临时表的上层键和值。然后,如果该行的键值是 'and' 或 'or'(这些键值将数组作为 valueString),我可以只使用该行的 valueString 递归调用相同的 SQL,它会为我很好地分离它们。

【讨论】:

    猜你喜欢
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多