IntelliJ IDEA中SonarLint配置遇MalformedJsonException错误的解决咨询
SonarLint绑定SonarQube服务器JSON解析错误的修复方案
问题场景
在IntelliJ IDEA 2024.1旗舰版中使用SonarLint 10.12.0.79769绑定SonarQube服务器时,完成令牌配置点击「下一步」后出现「连接服务器失败,请检查配置」错误,底层异常为com.google.gson.stream.MalformedJsonException,提示需设置JsonReader.setLenient(true)以接受格式错误的JSON。已知SonarQube服务器可通过浏览器正常访问,令牌有效。
调试与修复步骤
1. 排查SonarQube返回的JSON格式
- 使用IDEA自带HTTP代理或抓包工具,捕获SonarLint与服务器交互的HTTP响应,检查返回内容是否为标准JSON:
- 常见问题包括多余逗号、未闭合引号、服务器返回HTML错误页但标记
Content-Type: application/json - 也可以用curl命令直接测试服务器接口:
查看输出是否为合法JSON。curl -u <你的令牌>: https://<SonarQube地址>/api/server/version
- 常见问题包括多余逗号、未闭合引号、服务器返回HTML错误页但标记
2. 验证版本兼容性
确认SonarQube服务器版本与SonarLint 10.12.0兼容:SonarLint 10.x系列要求SonarQube服务器版本至少为9.9 LTS,若服务器版本过低,可能返回非预期格式的响应。
3. 检查IDEA网络配置
- 浏览器能访问不代表IDEA的网络配置一致,前往
File > Settings > Appearance & Behavior > System Settings > HTTP Proxy确认代理设置,尝试切换为「No proxy」或匹配浏览器的代理配置 - 临时关闭防火墙、VPN后重新测试连接
4. 验证令牌权限与有效性
- 确保令牌拥有足够权限(如全局分析权限、目标项目权限),可通过上述curl命令验证:若返回正常版本信息,说明令牌有效
5. 清除SonarLint缓存
前往File > Invalidate Caches...,选择「Invalidate and Restart」,清除可能残留的异常响应缓存
6. 处理SSL证书问题(HTTPS连接时)
若SonarQube使用自签名证书,IDEA可能未信任该证书:
- 导入服务器证书到IDEA的信任存储中,或临时切换为HTTP协议(若服务器允许)
关于SonarLint宽松解析JSON的可能性
SonarLint未提供公开配置项开启JsonReader.setLenient(true),该设置属于内部代码逻辑,普通用户无法直接修改。若确认是服务器返回的JSON格式问题,优先修复SonarQube端(如检查插件异常、反向代理是否篡改响应内容);也可尝试降级SonarLint版本(如10.11.x系列),部分旧版本对JSON解析的容错性可能更高。
内容的提问来源于stack exchange,提问作者Vinay
相关产品推荐
相关产品推荐

