目录前言:在当今互联网的企业中,大多数企业都会与其他第三方的公司有合作的项目,而现如今互联网项目之间跨平台的交互格式更多选择的是json格式,本篇是作者总结日常开发过程中一些常用的json方法。
- 一、Jackson(推荐)
- 二、谷歌的Gson
- 三、阿里的Fastjson
- 四、Hutool-json
-
导入依赖
2.8.6 2.8.6 2.8.11.1 com.fasterxml.jackson.core jackson-annotations ${jackson-annotations.version} com.fasterxml.jackson.core jackson-core ${jackson-core.version} com.fasterxml.jackson.core jackson-databind ${jackson-databind.version} org.projectlombok lombok 1.18.2 -
创建Java Bean
import lombok.Data; @Data public class Person { private String name; private Integer age; } -
测试jackson
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.test.bean.Person; import org.junit.Test; import java.io.IOException; import java.util.List; import java.util.Map; public class Test { @Test public void testJackson() throws IOException { String jsonStr = "{"name":"Tom","age":20}"; // json字符串转java对象 ObjectMapper om = new ObjectMapper(); Person person = om.readValue(jsonStr, Person.class); System.out.println(person); // java对象转json字符串 String str = om.writevalueAsString(person); System.out.println(str); // json字符串转java对象列表(list) String jsonStr2 = "[{"name":"Tom","age":20},{"name":"Tony","age":25}]"; Listpersons = om.readValue(jsonStr2, new TypeReference - >(){});
System.out.println(persons);
// json字符串转java map
Map
jsonMap = om.readValue(jsonStr, new TypeReference -
运行结果截图
-
导入依赖
com.google.code.gson gson 2.8.6 -
沿用第一节的Java Bean
-
测试gson
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.test.bean.Person; import org.junit.Test; import java.lang.reflect.Type; import java.util.List; import java.util.Map; public class TestGson { @Test public void test() { System.out.println("测试Gson..."); Gson gson = new Gson(); String jsonStr = "{"name":"Tom","age":20}"; // json字符串转java对象 Person person = gson.fromJson(jsonStr, Person.class); System.out.println(person); // java对象转json字符串 String str = gson.toJson(person); System.out.println(str); // json字符串转java对象列表(list) String jsonStr2 = "[{"name":"Tom","age":20},{"name":"Tony","age":25}]"; Type type = new TypeToken- >(){}.getType();
List
persons = gson.fromJson(jsonStr2, type); System.out.println(persons); // json字符串转java map Type type2 = new TypeToken -
运行结果截图
- 导入依赖
com.alibaba fastjson 1.2.70 - 沿用第一节的Java Bean
- 测试fastjson
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.test.bean.Person; import org.junit.Test; import java.lang.reflect.Type; import java.util.List; import java.util.Map; public class TestFastjson { @Test public void test() { System.out.println("测试Fastjson..."); String jsonStr = "{"name":"Tom","age":20}"; // json字符串转java对象 Person person = JSON.parseObject(jsonStr, Person.class); System.out.println(person); // java对象转json字符串 String str = JSON.toJSONString(person); System.out.println(str); // json字符串转java对象列表(list) String jsonStr2 = "[{"name":"Tom","age":20},{"name":"Tony","age":25}]"; Type type = new TypeReference- >() {}.getType();
List
persons = JSON.parseObject(jsonStr2, type); System.out.println(persons); // json字符串转java map Type type2 = new TypeReference - 运行结果截图
- 导入依赖
cn.hutool hutool-all 5.7.3 - 沿用第一节的Java Bean
- 测试Hutool-json
import cn.hutool.core.lang.TypeReference; import cn.hutool.json.JSONUtil; import com.test.bean.Person; import org.junit.Test; import java.lang.reflect.Type; import java.util.List; import java.util.Map; public class TestHutoolJson { @Test public void test() { System.out.println("测试Hutool-json..."); String jsonStr = "{"name":"Tom","age":20}"; // json字符串转java对象 Person person = JSONUtil.toBean(jsonStr, Person.class); System.out.println(person); // java对象转json字符串 String str = JSONUtil.toJsonStr(person); System.out.println(str); // json字符串转java对象列表(list) String jsonStr2 = "[{"name":"Tom","age":20},{"name":"Tony","age":25}]"; Listpersons = JSONUtil.toList(jsonStr2, Person.class); System.out.println(persons); // json字符串转java map Type type = new TypeReference - 运行结果截图



