首页 > 解决方案 > 如何修复 SQL Server Json 文本格式不正确。在位置 151 发现意外字符

问题描述

我正在处理一个包含 JSON 格式列的表,我想从该列中提取坐标值。

所以我运行以下代码:

Select *,JSON_VALUE(field,'$."Coordinate-X"[0]') As coordinate INTO TABLE_1 FROM table
WHERE JSON_VALUE(field,'$."Coordinate-X"[0]') IS NOT NULL

运行 5 分钟后出现以下错误

消息 13609,级别 16,状态 1,第 27 行 Json 文本格式不正确。在位置 151 处发现了意外字符 '"'。

当我尝试检查前 200 * 以下代码的某些行时,将返回结果而没有任何错误

Select TOP 200 *,JSON_QUERY(field,'$."Coordinate-X"[0]') As coordinate FROM table
WHERE JSON_VALUE(field,'$."Coordinate-X"[0]') IS NOT NULL

我想我有一行导致错误,但我不知道如何识别它或排除该行并返回结果。

标签: sqljson-queryjson-value

解决方案


我设法用这个 where 语句解决了这个问题,以防有人遇到同样的问题,我希望它有所帮助!

Select *,JSON_QUERY(field,'$."Coordinate-X"[0]') As coordinate FROM table
WHERE field like '%Coordinate-X%'
and ISJSON(field)=1

推荐阅读