JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。那解析json的3种方法有哪些?下面来我们就来给大家讲解一下解析json的3种方法。
一.官方解析
官方提供的 json 解析方式,比较繁琐,所以用的人比较少。
第一步,引入依赖:
<!--json官方-- > <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20160810</version></dependency>
第二步,编写测试代码:
package org.example; import org.json.JSONObject; import org.springframework.stereotype.Component; /** * 官方解析 */ @Componentpublic class JsonTest1 { /** * 对象转json * @param user * @return */ public String userToJson(User user) { JSONObject jsonObject = new JSONObject(user); String jsonStr = jsonObject.toString(); return jsonStr; } /** * json转对象 * @param json * @return */ public User userFromJson(String json) { JSONObject jsonObject = new JSONObject(json); String name = jsonObject.getString("name"); String sex = jsonObject.getString("sex"); int age = jsonObject.getInt("age"); User user = new User(name, sex, age); return user; } }
第三步,单元测试:
package org.example; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring.xml") public class JsonTest1Test { @Autowired private JsonTest1 jsonTest1; @Test public void userToJson() { User user = new User("秦明", "man", 18); String json = jsonTest1.userToJson(user); System.out.println(json); } @Test public void userFromJson() { String json = "{\"sex\":\"man\",\"name\":\"秦明\",\"age\":18}"; User user = jsonTest1.userFromJson(json); System.out.println(user); } }
第四步,查看结果。
二.谷歌 Gson 解析
第一步,引入依赖:
<!--gson-- > <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>
package org.example; import com.google.gson.Gson; import org.springframework.stereotype.Component; /** * gson解析 */ @Componentpublic class JsonTest2 { /** * 对象转json * @param user * @return */ public String userToJson(User user) { Gson gson = new Gson(); String json = gson.toJson(user); return json; } /** * json转对象 * @param json * @return */ public User userFromJson(String json) { Gson gson = new Gson(); User user = gson.fromJson(json, User.class); return user; } }
第三步,单元测试:同上(下面第三步和第四步和上面都一样,所以下面省略)
第四步,查看结果:同上
三.阿里巴巴 FastJson 解析
这个解析方式是由阿里巴巴开发出来的,效率最高,深受大家喜爱,功能强大,想要更深入学习的可以查看 FastJson 官网API。
第一步,引入依赖:
<!--fastjson-- > <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version></dependency>
package org.example; import com.alibaba.fastjson.JSONObject; import org.springframework.stereotype.Component; /** * fastjson解析 */ @Componentpublic class JsonTest3 { /** * 对象转json * @param user * @return */ public String userToJson(User user) { String json = JSONObject.toJSONString(user); return json; } /** * json转对象 * @param json * @return */ public User userFromJson(String json) { User user = JSONObject.parseObject(json, User.class); return user; } }
这就是解析json的3种方法,大家在实际工作中,如果遇到解析json的,可以使用以上的几种方法去解析哦!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: