json数据怎么解析,json解析的几种方式

这个问题是我们作为程序员几乎每天都要进行的操作 。那它有多少种方式呢 。我们这里就这点来说一说 。
解析的四种方式官方解析谷歌 Gson 解析阿里巴巴 FastJson 解析Jackson 解析

json数据怎么解析,json解析的几种方式

文章插图
案例实操这里我们就只讨论对象与 json 如何互相转换 。
这里我们先创建好 Maven 项目 。方便引入依赖 。通过单元测试来实际检验我们不同的解析方式 。
下面我们都使用 User 对象 。先创建好我们需要的类 。
User.java
packageorg.example; publicclassUser{ privateString name; privateString sex; privateInteger age; publicUser(){ } publicUser(String name, String sex, Integer age){ this.name = name; this.sex = sex; this.age = age; } publicString getName(){ returnname; } publicvoidsetName(String name){ this.name = name; } publicString getSex(){ returnsex; } publicvoidsetSex(String sex){ this.sex = sex; } publicInteger getAge(){ returnage; } publicvoidsetAge(Integer age){ this.age = age; } @OverridepublicString toString(){ return"User{"+ "name='"+ name + '''+ ", sex='"+ sex + '''+ ", age="+ age + '}'; } } 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152官方解析官方提供的 json 解析方式 。比较繁琐 。所以用的人比较少 。
第一步 。引入依赖:
<!--json官方--><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20160810</version></dependency>123456第二步 。编写测试代码:
packageorg.example; importorg.json.JSONObject; importorg.springframework.stereotype.Component; /** * 官方解析 */@ComponentpublicclassJsonTest1{ /** * 对象转json * @paramuser * @return*/publicString userToJson(User user){ JSONObject jsonObject = newJSONObject(user); String jsonStr = jsonObject.toString(); returnjsonStr; } /** * json转对象 * @paramjson * @return*/publicUser userFromJson(String json){ JSONObject jsonObject = newJSONObject(json); String name = jsonObject.getString("name"); String sex = jsonObject.getString("sex"); intage = jsonObject.getInt("age"); User user = newUser(name,sex,age); returnuser; } } 12345678910111213141516171819202122232425262728293031323334353637第三步 。单元测试:
packageorg.example; importorg.junit.Test; importorg.junit.runner.RunWith; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.test.context.ContextConfiguration; importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations= "classpath:spring.xml") publicclassJsonTest1Test{ @AutowiredprivateJsonTest1 jsonTest1; @TestpublicvoiduserToJson(){ User user = newUser("秦明", "man", 18); String json = jsonTest1.userToJson(user); System.out.println(json); } @TestpublicvoiduserFromJson(){ String json = "{"sex":"man","name":"秦明","age":18}"; User user = jsonTest1.userFromJson(json); System.out.println(user); } } 1234567891011121314151617181920212223242526272829【json数据怎么解析,json解析的几种方式】第四步 。查看结果:
谷歌 Gson 解析第一步 。引入依赖:
<!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version></dependency>123456第二步 。编写测试代码:
packageorg.example; importcom.google.gson.Gson; importorg.springframework.stereotype.Component; /** * gson解析 */@ComponentpublicclassJsonTest2{ /** * 对象转json * @paramuser * @return*/publicString userToJson(User user){ Gson gson = newGson(); String json = gson.toJson(user); returnjson; } /** * json转对象 * @paramjson * @return*/publicUser userFromJson(String json){ Gson gson = newGson(); User user = gson.fromJson(json, User.class); returnuser; } } 12345678910111213141516171819202122232425262728293031323334第三步 。单元测试:同上(下面第三步和第四步和上面都一样 。所以下面省略)
第四步 。查看结果:同上
阿里巴巴 FastJson 解析这个解析方式是由阿里巴巴开发出来的 。效率最高 。深受大家喜爱 。功能强大 。想要更深入学习的可以查看 FastJson 官网API 。
第一步 。引入依赖:
<!--fastjson--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>123456第二步 。编写测试代码:
packageorg.example; importcom.alibaba.fastjson.JSONObject; importorg.springframework.stereotype.Component; /** * fastjson解析 */@ComponentpublicclassJsonTest3{ /** * 对象转json * @paramuser * @return*/publicString userToJson(User user){ String json = JSONObject.toJSONString(user); returnjson; } /** * json转对象 * @paramjson * @return*/publicUser userFromJson(String json){ User user = JSONObject.parseObject(json,User.class); returnuser; } } 1234567891011121314151617181920212223242526272829303132

推荐阅读