繁体   English   中英

JSON 文本格式不正确。 在 position 0 处发现意外字符“N”

JSON text is not properly formatted. Unexpected character 'N' is found at position 0

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我是 SQL 中 JSON 的新手。 我收到错误消息“JSON 文本格式不正确。在 position 0 处发现了意外字符 'N'。” 在执行以下 -

DECLARE @json1 NVARCHAR(4000)
set @json1 = N'{"name":[{"FirstName":"John","LastName":"Doe"}], "age":31, "city":"New York"}'
DECLARE @v NVARCHAR(4000)
set @v = CONCAT('N''',(SELECT value FROM OPENJSON(@json1, '$.name')),'''')
--select @v as 'v'
SELECT  JSON_VALUE(@v,'$.FirstName')

“ select @v as 'v' ”给了我

N'{"FirstName":"John","LastName":"Doe"}'

但是,在最后一个 select 语句中使用它会给我错误。

DECLARE @v1 NVARCHAR(4000)
set @v1 = N'{"FirstName":"John","LastName":"Doe"}'
SELECT  JSON_VALUE(@v1,'$.FirstName') as 'FirstName'

也可以正常工作。

2 个回复

您正在CONCAT语句中添加N字符。

尝试更改行:

set @v = CONCAT('N''',(SELECT value FROM OPENJSON(@json1, '$.name')),'''')

到:

set @v = CONCAT('''',(SELECT value FROM OPENJSON(@json1, '$.name')),'''')

JSON_VALUE function可能首先在所有行上执行,然后再应用 where 子句。 这将取决于执行计划,因此诸如顶级子句或排序之类的小事情可能会对此产生影响。

  • 这意味着如果您的 json 数据在该列的任何位置(在整个表中)无效,则在执行查询时会抛出错误。
  • 所以首先找到并修复那些无效的 json 格式。 例如,如果该列有一个 ' 而不是 " 它不能被解析并且会导致整个 TSQL 查询抛出一个错误

在我的情况下,在 json 更正 sql server 在 OPENJSON 函数中运行良好后,JSON 字符串中存在一些不合适的字符

1 JSON 文本格式不正确。 在 position 1 中发现了意外的字符 '''

问题:为什么我无法应用 OPENJSON function 将以下数据读取为标准柱状形式? 如何修改查询或 JSON 文本来解决此问题? 上下文:我在 SQL 服务器的全局临时表中有一些 JSON 数据,我正在尝试解析并加载到标准表中。 返回以下结构中的单行数据: 尝试在下面的代码块中应用 OPE ...

6 Java文本格式不正确

我只是似乎无法弄清楚如何使java正确格式化我的输出。 输出的代码片段为: System.out.format("\\n %1s%20s%25s", intDf.format(i), df.format(monthlyPayment), df.format(totalPayment)) ; ...

2014-11-29 23:20:46 2 45   java
7 HTML文本格式不正确

我正在使用html寻找下面的输出 广告代理商:(?)* 我正在编写类似下面的代码...... 但是我在broswer中得到类似下面的输出...... 创意机构:(?)* 可以请有人帮我这个.... 谢谢 ...

8 T-SQL Select from JSON 返回 JSON 文本格式不正确

在 SQL Server 2016 中使用存储过程(包括在下面)我需要从远程文件的嵌套 JSON 输出中进行选择,但是在我最初的SELECT *我已经遇到问题,因为服务器返回 JSON 文本格式不正确: JSON 文本格式不正确。 在位置 0 处发现了意外字符“A”。 我使用的 T-SQ ...

2021-06-06 18:57:24 1 41   json/ tsql
10 SQL Server - OPENJSON 错误 - JSON 文本格式不正确

Azure SQL Server 2017 - 我们有一个表dbo.MailArchive ,其中有一个名为Mail_Body的字段,其中包含电子邮件的正文。 从记录到记录的数据总是看起来像这样,只是有不同的数字和状态消息: 但是复制/粘贴上面的内容进行测试会使它看起来没有问题。 您可以使用 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM