Java解析JSON的四种方式
微信搜索关注“咖啡遇上代码”公众号,查看更多
一、什么是JSON
JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于阅读和编写,同时也易于解析和生成,并有效地提升网络传输效率。
二、JSON 语法
(1)数据在名称/值对中
(2)数据由逗号分隔
(3)大括号保存对象
(4)中括号保存数组
三、Java中JSON的生成与解析的四种方式(简单的Demo):
一个实体类:用于与JSON数据进行相互转换
public class Person {private String name;private String sex;private int age;public Person(String name, String sex, int age) {this.name = name;this.sex = sex;this.age = age;}public String getName() {return name;}public String getSex() {return sex;}public int getAge() {return age;}@Overridepublic String toString() {return "Person{name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}';}
}
(1)利用传统方式:
由实体类生成Json字符串:
public Person getPerson(){return new Person("张三", "男", 25);
}
@Test
public void EntityToJson(){JSONObject jsonObject = new JSONObject();jsonObject.put("name", getPerson().getName());jsonObject.put("sex", getPerson().getSex());jsonObject.put("age", getPerson().getAge());System.out.println(jsonObject.toString());
}
由Json字符串生成实体类:
@Test
public void JsonToEntity(){String jsonString = "{\"sex\":\"男\",\"name\":\"张三\",\"age\":25}";JSONObject jsonObject = new JSONObject(jsonString);Person person = new Person(jsonObject.get("name").toString(), jsonObject.get("sex").toString(), Integer.valueOf(jsonObject.get("age").toString()));System.out.println(person.toString());
}
(2)利用Jackson方式:
由实体类生成Json字符串:
@Test
public void EntityToJson() throws IOException {Person person = new Person("张三", "男", 25);ObjectMapper objectMapper = new ObjectMapper();String jsonString = objectMapper.writeValueAsString(person);System.out.println(jsonString);
}
由Json字符串生成实体类:
@Test
public void JsonToEntity() throws IOException {ObjectMapper objectMapper = new ObjectMapper();String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";Person person = objectMapper.readValue(jsonString, Person.class);System.out.println(person);
}
(3)利用GSON方式:
由实体类生成Json字符串:
@Test
public void EntityToJson(){Person person = new Person("张三", "男", 25);Gson gson = new Gson();String jsonString = gson.toJson(person);System.out.println(jsonString);
}
由Json字符串生成实体类:
@Test
public void JsonToEntity(){String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";Gson gson = new Gson();Person person = gson.fromJson(jsonString, Person.class);System.out.println(person.toString());
}
(4)利用FastJSON方式
由实体类生成Json字符串:
@Test
public void EntityToJson(){Person person = new Person("张三", "男", 25);Object jsonString = JSON.toJSON(person);System.out.println(jsonString.toString());
}
由Json字符串生成实体类:
@Test
public void JsonToEntity(){String jsonString = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":25}";Person person = JSON.parseObject(jsonString, Person.class);System.out.println(person.toString());
}
四、几种方式的比较
类型 |
简介 |
传统Json方式: |
复杂的Json数据转换成实体类存在缺陷,性能和功能不够完善 |
Jackson方式: |
复杂的Json数据转换成实体类存在缺陷,性能和功能优于传统方式 |
Gson方式: |
功能方面在几种方式中最优,性能方面不如Jackson方式 |
FastJson方式: |
复杂的实体类转换成Json数据存在缺陷,解析json的速度优于其他方式 |
Java解析JSON的四种方式相关推荐
- java json 解析_Java解析JSON的四种方式
一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...
- java解析xml文件四种方式介绍、性能比较和基本使用方法
2019独角兽企业重金招聘Python工程师标准>>> 一.基本介绍: 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...
- Java解析Xml的三种方式总结
转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内 ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
- Java 实现多线程的四种方式 超详细
Java 实现多线程的四种方式 文章目录 Java 实现多线程的四种方式 一.继承 Thread 类 二.实现 Runnable 接口 三.实现 Callable 接口 四.线程池 1,Executo ...
- Java中创建对象的四种方式
为什么80%的码农都做不了架构师?>>> Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.l ...
- java解析xml的几种方式
java解析xml的几种方式 博客分类: java基础备忘-好记性不然烂笔头 XMLJava应用服务器数据结构编程 第一种:DOM. DOM的全称是Document Object Model,也即文 ...
- Java 创建类的四种方式
Java 创建类的四种方式 对于上学期已经学习过c++的同学,是不是对另一大编程语言产生了浓厚的兴趣,对于c++的面向对象编程,又和java的面向变量有何区别,下面我们从java四种创建对象来说起. ...
- java怎样输入五个数字打一成语,Java的线程安全四种方式五个等级[1]
Java的线程安全四种方式五个等级[1]以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 四种方式 sychronized ...
- java创建多线程的四种方式
java多线程的创建方式是面试经常会被问到的一个问题,因此在这里我对java创建多线程的四种方式做一个简单的归纳与总结,便于复习. 一.继承Thread类创建多线程 ① 创建一个继承于Thread类的 ...
最新文章
- 忠告初学者学习Linux系统的8点建议
- oracle awr 等待事件,3.db file scattered read等待事件
- 财经法规税收征收管理法律制度练习题二
- Python嵌套列表解析式(又称列表推导式)写法剖析与应用举例
- 修改使用计算机的名称,Windows 10中修改计算机名称的方法,你知道几种?
- PS教程第十五课:图层是最基本的要求
- Android插u盘自动执行,android tv box ---- 插入u盘直接播放指定文件夹中的视频
- centos内核引导参数
- php web服务器部署,php – 如何配置apache web服务器以部署laravel 5
- Windows网络服务---DHCP服务
- android与ndk交互,NDK-JNI与Java的交互 hello-world
- oracle12542,Oracle 11Gr1监听报错 TNS-12542 12560 00512
- Docker docker-compose 配置lnmp开发环境
- 《InfoGAN: Interpretable Representation Learning》翻译
- 华为g660获取解锁码
- cmos逻辑门传输延迟时间_半导体学习日记-CMOS器件面临的挑战
- ICPC 2015 北京 Today Is a Rainy Day
- linux最后一行awk,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- Java向word中插入Excel文件对象
- ICPR 2018|阿里巴巴读光OCR及MTWI数据集亮相引关注