sqlserver通过OPENJSON转换 json数据
OPENJSON函数采用单个
OPENJSON行集函数可将 JSON 文本转换为一组行和列。 使用 OPENJSON 将 JSON 集合转换为行集后,可以在返回的数据上运行任意 SQL 查询或将其插入到 SQL Server 表中。 OPENJSON函数采用单个 JSON 对象或 JSON 对象的集合,并将其转换为一行或多行。 OPENJSON 函数默认返回以下数据: 可以添加可选的 WITH 子句来提供显式定义输出结构的架构。 选项 1 - 具有默认输出的 OPENJSON 在不提供结果的显式架构的情况下使用 OPENJSON 函数时(即,在 OPENJSON 之后不使用 WITH 子句),该函数将返回包含以下三列的表: 输入对象中属性的名称(或输入数组中元素的索引)。属性或数组元素的值。类型(例如,字符串、数字、布尔值、数组或对象)。 OPENJSON 以单独的行返回 JSON 对象的每个属性或数组的每个元素。 下面是使用具有默认架构(即不包含可选的 WITH子句)的 OPENJSON的快捷示例,该示例为 JSON 对象的每个属性返回一行。 示例 SQL复制
结果 key值type name John 1 surname Doe 1 age 45 2 技能 ["SQL","C#","MVC"] 4 有关具有默认架构的 OPENJSON 的详细信息 有关详细信息和示例Mssq类型转换函数,请参阅将 OPENJSON 与默认架构 (SQL Server)配合使用。 有关语法和用法,请参阅OPENJSON (Transact-SQL)。 选项 2 - 具有显式结构的 OPENJSON 输出 如果使用OPENJSON函数的WITH子句指定结果的架构,该函数返回的表只包含WITH子句中定义的列。 在可选的 WITH 子句中,指定一组输出列、列类型和每个输出值的 JSON 源属性的路径。OPENJSON循环访问 JSON 对象的数组,读取每一列的指定路径上的值,并将值转换为指定类型。 下面是使用具有 WITH 子句中显式指定的输出架构的 OPENJSON 快捷示例。 示例 SQL复制
结果 NumberDate客户数量 SO43659 2011-05-31T00:00:00 AW29825 1 SO43661 2011-06-01T00:00:00 AW73565 3 此函数返回 JSON 数组的元素并将其格式化。 有关具有显式架构的 OPENJSON 的详细信息 有关详细信息和示例,请参阅将 OPENJSON 与显式架构配合使用 (SQL Server)。 有关语法和用法,请参阅OPENJSON (Transact-SQL)。 OPENJSON 要求兼容性级别 130 查看兼容性sql
OPENJSON函数仅在兼容级别 130下可用。 如果数据库兼容级别低于 130,SQL Server 将无法找到并运行 OPENJSON 函数。 其他内置 JSON 函数在所有兼容级别均可用。 可以在sys.databases视图或数据库属性中查看兼容级别。 可以使用以下命令更改数据库的兼容级别: ALTER DATABASE SET COMPATIBILITY_LEVEL = 130 将 SQL Server 数据转换为 JSON 或导出 JSON 通过将FOR JSON子句添加到SELECT语句中,可将 SQL Server 数据或 SQL 查询结果的格式设置为 JSON。使用 FOR JSON 委托从客户端应用程序到 SQL Server 的 JSON 输出格式。有关详细信息,请参阅借助 FOR JSON 将查询结果的格式设置为 JSON (SQL Server)。 以下示例使用 PATH 模式和 FOR JSON 子句。
控制其他 JSON 输出选项 使用以下附加选项控制FOR JSON子句的输出。 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |