json - FOR JSON PATH 产生意外的 xml 声明
问题描述
我在 SSMS 版本 13.0.16106.4 中。我正在尝试检索我的查询结果:
SELECT TOP 10 *
FROM my_table
ORDER BY NEWID()
FOR JSON PATH
这会在结果窗口中生成指向查询生成的 JSON 的链接。但是,当我单击链接时,出现以下错误:
无法显示 XML。发生以下错误:意外的 XML 声明。XML 声明必须是文档中的第一个节点,并且它之前不允许出现空白字符。第 1 行,位置 431。一种解决方案是增加从服务器检索到的 XML 数据的字符数。要更改此设置,请在工具菜单上单击选项。
我尝试增加 XML 结果的数据大小限制,但没有奏效。似乎 SSMS 出于某种原因将 JSON 视为 XML,并且可能正在尝试对其进行解析。
解决方案
SSMS 不能很好地处理 JSON 表示。
请尝试 Microsoft 的 Azure Data Studio。它知道如何正确处理 JSON。Azure Data Studio 会与最新版本的 SSMS 一起自动安装。
这是官方 MS 文档的摘录:
重要的
从 SQL Server Management Studio (SSMS) 18.7 开始,Azure Data Studio 会与 SSMS 一起自动安装。SQL Server Management Studio 的用户现在可以从 Azure Data Studio 中的创新和功能中受益。Azure Data Studio 是一个跨平台的开源桌面工具,适用于你的环境,无论是在云、本地还是混合环境中。
推荐阅读
- c++ - 如何在C ++中按行的总和对矩阵进行降序排序
- php - 每次在php中调用相同的脚本时如何重复构建列表
- java - 在webview中单击div时如何完成活动
- scala - 从Scala中的安装路径逐行读取文本文件
- php - Coinbase commerce webhook 建立连接失败
- jestjs - 如何在同一个项目中使用 Cypress(与 Mocha)和 Jest?
- python - 从列表中选择随机字符串的次数与变量的长度一样多
- javascript - 用 Javascript 合并两个数组对象
- java - 字符串中出现字母'' - 错误的代码和输出
- go - 为什么 Go 中的 io.Writer 没有 NopCloser?