我创建了一个返回JSON的存储过程。但它不返回完整的JSON只返回有限的JSON。我在Select语句后使用了“For JSON auto”。有任何解决方案可以获得所有JSON吗?
答案 0 :(得分:1)
如果您正在使用任何Cast或隐蔽操作。使用VARCHAR(MAX)而不是VARCHAR()。
在这种情况下我见过这个问题。
此外,如果您正在使用打印输出,则文本可能会被截断,但您可以使用“选择”或“输出”参数。
输出nvarchar(max)类型的输出参数
或查看此链接:
Format Query Results as JSON with FOR JSON (SQL Server)
这可能会有所帮助
答案 1 :(得分:0)
我在这里找到了我的解决方案:https://docs.microsoft.com/en-us/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server?view=sql-server-ver15#output-of-the-for-json-clause(与上面相同,但有一个特定的部分)
问题是我认为 SQL Server 正在返回单行/单元格的 JSON 数据,因为 SSMS 就是这样显示它的。事实是它把它分成了多行。
我使用 ExecuteScalar()
在 .NET 中检索数据,但我需要使用 ExecuteReader()
,并将所有行连接在一起。一旦我这样做了,我就可以毫无问题地反序列化 JSON。