
JSON数据如何进行解析呢,方式有哪些?
引入依赖:
发布日期:2021-05-14 03:11:02
浏览次数:15
分类:精选文章
本文共 3531 字,大约阅读时间需要 11 分钟。
JSON 和 XML 解析方式说明
作为程序员,我们每天都要进行 JSON 或 XML 的解析操作,这实际上有多种方法可以选择。以下是几种常见的解析方式及其优缺点分析。
一、官方解析方式
JSON 提供了丰富的解析工具,JDK 自带的 org.json
包可以实现 JSON 解析,但使用起来相对繁琐。以下是使用 org.json
的步骤:
org.json json 20160810
- 编写解析方法:
- 引入依赖:
- 编写解析方法:
- 引入依赖:
- 编写解析方法:
- 引入依赖:
- 编写解析方法:
-
项目创建: 新建一个 Maven 项目,引入上述解析库,确保项目结构清晰。
-
创建 User 类:
- 测试方法:
- 官方解析:稳定,但效率一般。
- Gson:灵活性强,扩展性好。
- FastJson:速度快,适合大规模数据。
- Jackson:功能全面,支持复杂数据类型。
public class Json SgtTest { public String userToJson(User user) { JSONObject jsonObject = new JSONObject(user); String jsonStr = jsonObject.toString(); return jsonStr; } public User userFromJson(String json) { JSONObject jsonObject = new JSONObject(json); User user = new User( jsonObject.getString("name"), jsonObject.getString("sex"), jsonObject.getInt("age") ); return user; }};
优点:官方支持,稳定性高。 缺点:编码麻烦,效率较低。
二、谷歌 Gson 解析
Gson 由谷歌开发,是一种强大的 JSON 解析库,兼容性强,支持很多格式转换:
com.google.code.gson gson 2.8.5
public class JsonTestGson { private Gson gson = new Gson(); public String userToJson(User user) { return gson.toJson(user); } public User userFromJson(String json) { return gson.fromJson(json, User.class); }};
优点:转换灵活,支持动态对象。 缺点:性能稍低,但功能强大。
三、阿里巴巴 FastJson 解析
FastJson 是国内开发者提出的替代品,速度非常快,功能丰富,深受欢迎:
com.alibaba fastjson 1.2.47
public class JsonTestFast { private static JSONObject jsonObject = new JSONObject(); public String userToJson(User user) { return JSONObject.toJSONString(user); } public User userFromJson(String json) { return JSONObject.parseObject(json, User.class); }};
优点:性能最佳,功能全面。 缺点:如果项目中已有其他解析需求,需要谨慎使用。
四、Jackson 解析
Jackson 是目前流行的 JSON 解析库,广泛应用于 Spring Boot 等框架中:
com.fasterxml.jackson.core jackson-databind 2.9.8
public class JsonTestJack { private ObjectMapper objectMapper = new ObjectMapper(); public String userToJson(User user) throws JsonProcessingException { return objectMapper.writeValueAsString(user); } public User userFromJson(String json) throws IOException { return objectMapper.readValue(json, User.class); }};
优点:支持复杂数据结构的解析。 缺点:默认对象不拆分,可以通过配置优化。
开发实操示例
package org.example;public class User { private String name; private String sex; private Integer age; public User(String name, String sex, Integer age) { this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; }};
@Testpublic void testUserToJson() { User user = new User("秦明", "man", 18); System.out.println(jsonTest.userToJson(user));}@Testpublic void testUserFromJson() throws Exception { String json = "{\"name\":\"秦明\",\"sex\":\"man\",\"age\":18}"; User user = jsonTest.userFromJson(json); System.out.println(user);}
JSON 的历史
JSON 的发展始于1997年,由 Douglas Crockford 和 Chip Morningstar 提出,旨在取代因 XML 解析差异大的现有方式。其核心优势是攻读架构复杂性,简化数据交换格式。
总结
选择解析方式需根据项目需求:
通过合理选择和配置,确保 JSON 解析效率高,系统稳定性好。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年05月03日 01时46分06秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
hadoop 分布式文件系统的计算和高可用
2019-03-09
【Linux】VMware Workstation 不可恢复错误: (vcpu-0)
2019-03-09
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
2019-03-09
关于Img标签在固定宽高的容器内部以图片比例缩放存在
2019-03-09
pyhton---异常处理的终极语法、网页访问基本读取、网页访问异常处理
2019-03-09
linux下编程出现 对'sem_wait'未定义的引用解决方案
2019-03-09
ant design pro v5去掉右边content区域的水印
2019-03-09
web_求和(练习)
2019-03-09
JavaScript——使用iterator遍历迭代map,set集合元素
2019-03-09
IAR调试卡顿的解决办法
2019-03-10
应用程序无法启动,应用程序的并行配置不正确完美解决方法
2019-03-10
【IntelliJ IDEA 2019.2】idea如何开启自动编译
2019-03-10
强大的文字处理器——Nisus Writer Pro
2019-03-10
如何轻松适应从Windows到MacOS的过渡!Mac新手入门指南
2019-03-10
fcpx插件:25个假日主题专业设计
2019-03-10
fcpx插件:Block Party for Mac(53个视频转场插件)
2019-03-10
Mac使用技巧:快速视频播放错误如何修护
2019-03-10
代码绘制五角形
2019-03-10
Course Schedule II
2019-03-10