You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server查询空JSON列时出现JSON格式错误的问题求助

解决SQL Server JSON_QUERY解析空字符串报错问题

问题根源在于JSON_QUERY函数要求输入必须是合法JSON格式,但当Cuestionario为空字符串时,它不属于有效JSON范畴,因此触发13609错误。

可以通过先判断字段有效性再针对性处理来解决,以下是两种实用方案:

方案1:空字符串返回JSON格式的null

用CASE结合ISJSON函数做判断,当字段为空或无效时返回JSON null,否则正常解析:

select TOP 1
  UserId,
  Fecha,
  Calificacion,
  CASE
    WHEN Cuestionario = '' OR ISJSON(Cuestionario) = 0 THEN JSON_QUERY('null')
    ELSE JSON_QUERY(Cuestionario)
  END Cuestionario,
  Comentarios,
  [Application]
from AppScores
where UserId = '00000000-0000-0000-0000-000000000000'
order by Fecha desc
for json path, WITHOUT_ARRAY_WRAPPER

方案2:空字符串返回空数组

如果希望空评价时返回空数组[]而非null,只需替换对应返回值:

select TOP 1
  UserId,
  Fecha,
  Calificacion,
  CASE
    WHEN Cuestionario = '' OR ISJSON(Cuestionario) = 0 THEN JSON_QUERY('[]')
    ELSE JSON_QUERY(Cuestionario)
  END Cuestionario,
  Comentarios,
  [Application]
from AppScores
where UserId = '00000000-0000-0000-0000-000000000000'
order by Fecha desc
for json path, WITHOUT_ARRAY_WRAPPER

原理说明

  • ISJSON(Cuestionario) = 0可识别空字符串、格式错误的JSON等无效值
  • JSON_QUERY('null')/JSON_QUERY('[]')生成合法JSON值,保证最终输出的JSON结构完整,避免解析报错

内容的提问来源于stack exchange,提问作者Rodrigo Jimenez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:47:08