FastJson转JackSon
概述
- 安全漏洞 Fastjson曾多次被发现存在安全漏洞,其中包括反序列化漏洞、代码执行漏洞、DoS漏洞等等。这些漏洞可能会导致应用程序受到攻击,造成数据泄露、系统瘫痪等严重后果。
- 反序列化性能 Fastjson的反序列化性能在所有Java JSON库中是最快的,但是在某些情况下,它的反序列化性能可能会比其他库慢。例如,当JSON数据包含大量的嵌套对象或数组时,Fastjson的反序列化性能可能会受到影响。
- 不支持标准JavaBean规范 Fastjson虽然可以将JSON数据转换成Java对象,但是它并不遵循JavaBean规范。例如,Fastjson允许将Java对象中的属性声明为public,而JavaBean规范要求属性必须声明为private,并提供getter和setter方法。这种不遵循JavaBean规范的行为可能会导致代码的可读性和可维护性变差。
- 受限的授权协议 Fastjson采用了Apache 2.0协议,虽然这是一种开源协议,但是在某些情况下,它可能会对商业应用程序的开发和分发造成一定的限制。例如,如果你使用Fastjson开发了一个商业应用程序,你可能需要在软件中包含Fastjson的授权信息,并保证这些信息不被删除或修改。这对于一些商业应用程序的开发者来说可能是不可接受的。
代码
实体类Jsonproperty
- 例如,我们有一个Java类User,该类包含了一个id属性和一个name属性:
public class User {
private long id;
private String name;
}
{
"user_id": 12345,
"user_name": "John Doe"
}
- 我们可以使用@JsonProperty注解来指定Java属性与JSON字段之间的映射关系:
public class User {
@JsonProperty("user_id")
private long id;
@JsonProperty("user_name")
private String name;
}
实际序列化使用
String param=JsonMapper.nonDefaultMapper().toJson(params)