Caused by: com.alibaba.fastjson2.JSONException: autoType is not support. org.springframework.security.core.authority.SimpleGrantedAuthority
时间: 2023-07-03 14:17:15 浏览: 256
这个错误是由fastjson序列化时自动类型检测导致的,但是Spring Security中的SimpleGrantedAuthority类不支持此功能。解决方法是在fastjson的配置中禁用自动类型检测,具体做法是在调用JSON.parseObject()方法时传递一个ParserConfig对象,并调用该对象的setAutoTypeSupport(false)方法。示例代码如下:
```
String jsonString = "{\"authority\":\"ROLE_USER\"}";
ParserConfig config = new ParserConfig();
config.setAutoTypeSupport(false);
SimpleGrantedAuthority authority = JSON.parseObject(jsonString, SimpleGrantedAuthority.class, config);
```
这样就可以避免这个错误了。
相关问题
caused by: com.alibaba.fastjson.jsonexception: write javabean error, fastjso
com.alibaba.fastjson.JSONException 是一个 JSON 解析/生成异常类,通常是由 fastjson 库在处理 JSON 字符串时发生错误导致的。
出现 "com.alibaba.fastjson.JSONException: write JavaBean error" 错误一般是由以下原因引起的:
1. JavaBean 对象和 JSON 字符串之间的属性不匹配。例如,JavaBean 对象缺少某些属性或 JSON 字符串包含了多余的属性,导致无法正确地将 JSON 字符串转换成 JavaBean 对象,或者无法将 JavaBean 对象转换成相应的 JSON 字符串。
解决方法:检查 JavaBean 对象和 JSON 字符串之间的属性是否一一对应并正确设置。
2. JavaBean 对象的属性和 JSON 字符串的属性类型不匹配。例如,JavaBean 对象中的属性是长整型,但是 JSON 字符串中对应的属性是字符串类型,导致类型转换错误。
解决方法:确保 JavaBean 对象的属性类型和 JSON 字符串中对应的属性类型一致。
3. JavaBean 对象中存在循环引用。即 JavaBean 对象的属性中包含了对自身的引用,导致 fastjson 无法正确处理。
解决方法:避免在 JavaBean 对象中出现循环引用,可以通过在 JavaBean 对象中使用 @JSONField(serialize=false) 注解来标记该属性不被序列化。
总之,"com.alibaba.fastjson.JSONException: write JavaBean error" 错误通常是由于 fastjson 在处理 JSON 字符串和 JavaBean 对象之间的转换时出现了问题。要解决这个错误,需要检查 JavaBean 对象和 JSON 字符串之间的属性是否匹配,并且确保属性类型一致。另外,要避免在 JavaBean 对象中出现循环引用。
Caused by: com.alibaba.fastjson.JSONException: parseDecimal error, field : acc920
这个错误是由 FastJSON 库抛出的,它表示在解析 JSON 字符串时出现错误。更具体地说,它指示 FastJSON 无法将字符串解析为数字类型。
在这种情况下,错误发生在字段 "acc920" 上。可能原因是该字段的值不是有效的数字,或者它是一个非标准的数字格式(如科学计数法)。您可以检查该字段的值,并确保它是有效的数字类型。如果值是无效的,请修复它,然后重新运行您的代码。
阅读全文