fastjson用什么替代?如何替代?

阳光 2022-08-10 16:44:35 java常见问答 6483

Fastjson 是一个java类库,可以被用来把Java对象转换成Json方式.也可以把Json字符串转换成对应的Java对象,不过这些好用的应用竟然有漏洞,因此大家想着能用什么来替代它?下面来我们就来给大家讲解一下这方面的内容。

fastjson用什么替代.png

使用Gson或者jackson代替Fastjson。

如何替代?

我们常用的json解析工具包括:阿里的Fastjson、Jackson和google的Gson,据测试,Fastjson较Jackson快了20%左右,Gson最慢。所以很多程序猿喜欢使用Fastjson。但是阿里提供的Fastjson近期频繁爆出安全漏洞,同时本着最小依赖原则,建议使用Jackson替换Fastjson

需要的依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency> <
dependency >
    <groupId>com.fasterxml.jackson.core</groupId> <
    artifactId > jackson - core < /artifactId> <
    version > 2.9 .5 < /version> <
    /dependency> <
    dependency >
    <groupId>com.fasterxml.jackson.core</groupId> <
    artifactId > jackson - annotations < /artifactId> <
    version > 2.9 .5 < /version> <
    /dependency>

用法示例

1. ObjectNode与ArrayNode

当我们需要操作一个json对象或者json数组的时候,我们可以使用下面的方法来构造ObjectNode和ArrayNode,类似fastjson中的JSONObject和JSONArray。

ObjectMapper mapper = new ObjectMapper();
    ObjectNode node = mapper.createObjectNode();
    node.put("name", "test");
    node.put("age", 20);
    System.out.println(node);
    ArrayNode array = mapper.createArrayNode();
    array.add(node);
    System.out.println(array);

2. json转对象

ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);
System.out.println(person.toString());

3. 对象转json

ObjectMapper objectMapper = new ObjectMapper();
Person person = new Person().setName("test").setAge(20);
String jsonString = objectMapper.writeValueAsString(person);
System.out.println("JsonString: " + jsonString);

4. json转泛型对象

ObjectMapper objectMapper = new ObjectMapper();
ListpersonList = objectMapper.readValue(jsonString, new 
TypeReference<list>() {});
System.out.println(personList.toString());

Fastjson可以作用于任何Java对象,不过Fastjson会有漏洞,因此我们可以用使用Gson或者jackson代替Fastjson哦!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

java代码怎么在cmd中运行?java运行不了怎么回事?

java写函数的步骤是什么?Java函数重载怎么操作?

json转对象的原理是什么?json字符串转对象怎么做?