报错com.alibaba.fastjson2.JSONException
背景:
今天在公司写业务的时候,需要将智谱生成的内容转为JSON对象存入到数据库中。然后就出现了com.alibaba.fastjson2.JSONException的异常。
原因:
这种异常通常是是由于JSON字符串格式错误导致的异常,输入的JSON字符串存在非法字符或格式错误。
下面列出几种可能的原因
-
JSON字符串中缺少冒号(:),例如键值对没有正确的分隔符。这可能是由于在JSON字符串中忘记添加冒号而导致的格式错误。
-
JSON字符串中存在额外的逗号(,)。在JSON对象或数组中,键值对或元素之间应该用逗号分隔,但是最后一个键值对或元素后面不能有逗号。
-
JSON字符串中存在非法的转义字符或特殊字符。在JSON字符串中,一些字符需要进行转义,例如双引号(")和反斜杠(\)。如果这些字符没有正确转义,就会导致格式错误。
分析:
因为智谱生成的内容是根据我提供的格式模板进行生成的。其中就包括了换行符一些非法的转义字符。也就是上述的第三点原因。所以导致了报错的出现。
解决:
将内容进行修改,使用符合要求的格式进行处理即可。
因为我的提示词模板是具有格式的,我通过格式对ai生成的内容进行了合理化的分割,提取出里面核心的数据,然后再将其通过map转化为JOSN对象,即可解决问题。