问题标签 [open-json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
632 浏览

sql - 传递空字符串时,SQL Server OPENJSON 为日期类型返回 1900-01-01

在 SQL Server 中使用 OPENJSON 解析 JSON 字符串时,如果日期字段为空,则 SQL 返回 1900-01-01。

输出:

我怎样才能防止这种情况发生?我能想到的一种方法是检查结果值,如果它是“1900-01-01”,则重置为 NULL。虽然我不希望实际日期是 1900-01-01 但这对我来说看起来不正确。我在 SQL 语法中遗漏了什么吗?

0 投票
1 回答
86 浏览

json - 将嵌套的名称-值对从 json 导入 SQL Server

我正在将一个 json 文件导入 SQL 2016,它在嵌套值结构中具有一些嵌套的名称-值对。这是我遇到问题的这些对中的值,例如 .

sql:

其结果是:

完整(测试)数据..

[ { "id": 1, "fruit": "orange", "values": [ { "name": "Color", "value": "Orange" }, { "name": "Weight", "value ": "16" }, { "name": "卡路里", "value": "25" } ] }, { "id": 23, "fruit": "Banana", "values": [ { "name “:“颜色”,“价值”:“黄色”},{“名称”:“体重”,“价值”:“30”},{“名称”:“卡路里”,“价值”:“250”} ] } ]

0 投票
1 回答
851 浏览

sql-server-2016 - 如何使用openjson递归解析JSON字符串

我有以下 JSON 数据:

预期的结果是

我发现当字段“Value”是JSON时,我需要继续解析它。

所以我创建了一个函数来做解析工作,但它返回''不符合要求。

可以将字符串传递给函数。

0 投票
3 回答
637 浏览

sql - OPENJSON 不会将所有文档都选择到 SQL 表中

我一直在尝试将 JSON 文件的内容导出到 SQL Server 表。但是,尽管 JSON 中存在多行,但输出 SQL 表仅包含 JSON 中的第一行。我正在使用的代码如下:

并且得到的输出如下: 点击查看

0 投票
2 回答
3558 浏览

sql - 如何获取 JSON 字符串中行的详细行号

我有一个存储过程,它接受一个 NVARCHAR(max) 字符串,该字符串是 JSON 数据,我需要在将其加载到实时表中之前对其进行验证。如果验证失败,我需要返回一条消息,其中包含问题和错误数据行的行号。这些行没有在 JSON 字符串中分配数字,但它们在字符串中的存储顺序暗示了它们。我试图在 OPENJSON 函数期间分配一个递增的数字。

使用 XML 时,我可以这样做:

派生它,但该技术不适用于 OPENJSON

如果可能的话,我宁愿不要分两次执行——即将数据加载到临时表中,然后用行号更新临时表中的行

以为这会奏效,但没有运气。

想得到一张像这样的桌子 样本结果集

0 投票
2 回答
738 浏览

tsql - 使用 TSQL OPENJSON 如何从具有动态键名的 JSON 数组中提取值

我有一个带有内部属性数组的 json 文档。在这些属性之一上,键名动态/随机更改。除了最后一个讨厌的属性之外,我可以轻松提取所有数据点。我过去发现或使用 OPENJSON 的所有方法都依赖于已知的键名。

在“内部”数组中,第一个属性的键名会发生变化。我想提取与该动态键关联的值,但不知道该键将是什么。希望下面的代码能比我用文字更好地描述这个问题。

这是为了便于阅读而格式化的 JSON 文档的样子...

一些要测试的代码...

到目前为止,我开发的带有麻烦部分的查询已注释掉...

0 投票
1 回答
568 浏览

sql-server - 如何通过 PYTHON 为 SQL INSERT FROM OPENJSON 转义 JSON 响应中的字符

由于值 (') 中的撇号,向 SQL Server db 发送 API JSON 响应时出错。查看operator_country_lar的第二个 JSON 响应

这是一个示例 API 响应:

序列化响应并执行:

第一个实例工作正常,但响应中的第二个设置会引发错误。如何转义撇号或者是否有更准确的方法在 PYTHON 中编写 SQL OPENJSON 语句?

0 投票
3 回答
164 浏览

sql - OPENJSON - 无法查询嵌套元素

我在使用 SQL Server 2016 中的 T-SQL 函数查询 JSON 文档的嵌套元素时遇到困难。我在此处此处此处OPENJSON通读了 MSDN 文档,但尚未找到 WITH 块的正确语法。我的列一直只返回一个空行。

任何人都可以协助修改 T-SQL 以实现这样的查询输出(如下)?

在此处输入图像描述

这是 json 结构和空输出:

在此处输入图像描述

0 投票
2 回答
366 浏览

c# - 使用 OPENJSON 将两个数组的对象插入 SQL 数据库

我想知道如何将这个由两个浮点数数组组成的JSON 对象放入 SQL 数据库表中:

表有 3 列:CoordID、纬度、经度(CoordID 是自动递增的)。我想将每对这些表( [0],[0] / [1][1] 等)作为表中的一行。所以对于这个对象,它将是 4 行。

这是无法按我预期工作的代码-它只是将空值放在“经度”和“纬度”列的位置,并且只创建一行......(而不是 4 行):

PS OPENJSON() 函数适用于 SQL Server 2016 版或 Azure SQL 数据库。以防万一有人会尝试在 SSMS 2014 中运行它,即 ;-)

0 投票
0 回答
747 浏览

json - 有条件地从 SQL Server 2017 中的 Json 数组中删除一个 json 对象

我正在使用 Json Array 将子表记录存储为父表中的列。现在我需要有条件地从 json 数组中删除一条记录。如果它是一个表,我可以使用带有条件的删除命令,但是如何删除存储为 SQL Server 中 varchar(max) 列的 Json 数组的记录。我浏览了下面的 url,可以看到查询和修改数据的命令,但是删除呢? https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-2017