问题标签 [for-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 投票
0 回答
187 浏览

sql-server - SQL Server 2016 中的 FOR JSON 查询

我在 SQL Server 2016 中遇到了FOR JSON查询问题。输出被切割成指定数量的字符。

例如,我使用此代码,其结果被剪切为 2033 个字符:

0 投票
1 回答
1641 浏览

json - 使用实体框架核心检索 json

由于json path,我有返回 json 的存储过程。

您如何使用实体框架核心来使用它们?

以下不起作用:

因为 JObject 类型不是模型的一部分:

但是我们应该如何使用实体框架核心来做到这一点?

0 投票
1 回答
7597 浏览

sql - SQL Server - “for json path”语句不返回超过 2984 行的 JSON 字符串

我正在尝试使用“for json path”语句在复杂且嵌套的 JSON 字符串中生成大量数据,并且我正在使用多个函数来创建此 JSON 字符串的不同部分,如下所示:

到目前为止,JSON 将是:

然后将调用“queue_objects”函数来填写“对象”数组:

队列对象

然后 JSON 将是:

还将调用“inherited_counter”和“queue_properties”函数来填充相应的键。

这只是一个示例,代码不起作用,因为我没有在这里放置函数。
但我的问题是:是函数同时相互调用,使服务器返回损坏的 JSON 字符串吗?还是服务器本身无法处理超过 2984 行的 JSON 字符串?

编辑:我的意思是 2984 行,是我在 JSON 上使用美化器,服务器不会逐行返回字符串,它返回损坏的 JSON,但在美化之后它恰好是 2984 行字符串。

0 投票
1 回答
243 浏览

sql - 从 SQL Server 2016+ 创建 JSON(用于 JSON 路径命令)

我正在尝试以特定的 JSON 格式创建一些输出,这是一个输出示例(将重复多次 - 每所大学一次):

示例 json 图像

我一直在想我会为此使用 SQL,因为它具有处理 JSON 格式并将处理嵌套的 FOR JSON 命令。当我对值进行硬编码时,我可以使用以下代码重新创建上述内容:

我遇到的问题是我需要为不同的大学创建此输出 100 次。我想在 SQL 中创建一个数据库表并在其上运行一些东西。这是 Excel 中的数据示例,我已过滤列表以仅显示上述所需的数据以及稍后单独输出中所需的其他几个数据点(我将担心其他输出之后):

数据样本图像

我只是无法完全理解我需要如何构建我的表,以便我可以使用 SQL 提取相关部分。我想知道是否应该旋转表,以便“IndiUID”的值成为数据库表中的字段,或者为每个当前标题项(DataValue、Ranking、Band 等)创建一个新表。

我想我可以从 indiUID = OVERALL_SCORE、SCHOOL_NAME_FORMAL 等的表中进行选择,但我想知道这是否太混乱了。

这就是我卡住的地方——我如何将这些数据组织到表格中以便能够提取它?这主要是关于创建 JSON 输出,因此 DB 部分是否是一个特别优雅的解决方案并不重要(它不会是 - 我对 SQL 非常基础!)。

0 投票
1 回答
9392 浏览

json - FOR JSON PATH vs FOR JSON AUTO SQL Server

I'm having an issue creating nested JSON in SQL Server. I'm trying to create an output that looks like this:

#xA;

I've tried both FOR JSON AUTO and FOR JSON PATH:

#xA;

FOR JSON AUTO creates this (address section is not nested (but accredidation is):

#xA;

FOR JSON PATH creates this (address section is nested, but accreditation is not - the whole block repeats):

#xA;

I think the key to it is some sort of FOR JSON sub query around the accreditations but I haven't had any success with this.

Create sample data with the following:

#xA;
0 投票
3 回答
2882 浏览

sql - 使用 FOR JSON 时获取值数组而不是对象数组

我正在尝试展平由FOR JSON.

我的查询看起来像:

生成的 JSON 是:

我想要的是:

缺少的数组不应包含 json 对象,而应仅包含值。有什么建议么?

0 投票
1 回答
378 浏览

json - 对于 JSON 路径格式

背景:

我有一个nvarchar(max)名为“问题”的 JSON 列,它看起来像单行中的这个真实示例......

我目前正在为示例“调用”生成此示例 JSON 片段...

..使用这个查询...

我的问题:

我不喜欢“yes_answers”数组的格式化方式。我想要更像这样的东西:

这是有效的吗?还是我应该以不同的方式展开?还是离开它?

我将使用 SQL 将“yes_answers”数组中的每个 question_id 引用到一个引用表,在该表中我正在寻找与该问题关联的真/假标志。如果这很重要,那么此时 JSON 不会离开 SQL。

编辑:

感谢@Tomato32,我想我发现了另一个帮助我足够接近的问题。

我的查询现在看起来像这样......

我生成的 JSON 看起来像这样......

我无法摆脱“yes_answers”数组中 int 值周围的引号,但我认为这无关紧要,我不会浪费任何时间 :) 谢谢大家! !

0 投票
2 回答
3026 浏览

json - SQL Server 2016 SSMS Json 格式

我在 SQL Server 2016 的 SSMS 中使用 JSON。有没有办法解决 FOR JSON 语句的结果显示为 XML 列的问题?

是否有任何设置更改、附加组件、外部工具等,甚至是黑客来减轻痛苦?

在我的理想世界中,单击 JSON 列(或 XML 列)将在我选择的文本编辑器中打开,例如 Visual Studio Code,SSMS 知道列中的字符串是 JSON 并将其保存到文件带有 .json 扩展名。

0 投票
1 回答
208 浏览

c# - 尝试使用 Sql-Query 在 ASP.NET MVC 中执行存储过程时出现异常

我正在使用实体框架,但有一个分层数据源。在控制器中进行 db-queries 并转换为 json 需要很长时间。

出于这个原因,我有一个存储过程。

直接在 Microsoft SQL Server Management Studio 中执行存储过程,我得到了预期的输出。

但是尝试在我的 Controller 中执行以下操作会引发以下异常。

System.Data.Entity.Core.EntityCommandExecutionException: '数据读取器与指定的 'MyDataModel.MyItem' 不兼容。类型的成员“Id”在数据读取器中没有同名的对应列。

我猜数据阅读器将字符串拆分为许多字段,因为它太长了?但我不确定,也不知道如果是这样我会如何解决。

--

(也尝试在Controller中写命令而不是执行存储过程)

0 投票
2 回答
462 浏览

sql-server - 有没有办法使用 FOR JSON 返回字符串或嵌入的 JSON?

我有一个 nvarchar 列,如果内容是有效的 JSON,我想返回嵌入到我的 JSON 结果中,否则作为字符串返回。

这是我尝试过的:

这总是将结果放入字符串中。

以下方法有效,但前提是属性包含有效的 JSON:

如果 Arguments 不包含 JSON 对象,则会发生运行时错误。

更新:样本数据:

更新:任何版本的 SQL Server 都可以。我什至很高兴知道它即将推出测试版或其他版本。