Java对【JSON数据的解析】--Gson解析法
Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包
两者异同点:
相同点:都是根据JSON数据创建相应的类
不同点:
1.调用方式区别
谷歌:方法都是非静态的,需要先创建对象,再去调用
阿里:方法都是静态的,直接用类调用,不需要创建对象
2.方法区别:
谷歌:fromJson(参数1,参数2)
阿里:JSON.parseXX(参数1,参数2)
具体是parseObject()还是parseArray(),根据需要定
要求:解析下面JSON数据
1.String string = “{name:’zhangsan’,age:18}”;
2.String string = “{persons:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;
3.String string = “{no:1,name:’android’,employees:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;
代码:
第一题:
package 谷歌和阿里解析JSON数据;
import com.google.gson.Gson;
public class Test {
public static void main(String[] args) {
//Gson解析JSON数据
//1.创建对象Person,有属性:name,age--创建结束
String string = "{name:'zhangsan',age:18}";
Gson gson=new Gson();
Person person=gson.fromJson(string, Person.class);
System.out.println(person.getName()+","+person.getAge());
}
}
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
}
}
运行结果:
第2题:
package 谷歌和阿里解析JSON数据;
import java.util.ArrayList;
import com.google.gson.Gson;
public class Test2 {
public static void main(String[] args) {
//Gson解析时,遇到对象创建对象,这个对象里所有的内容键都作为对象的属性
//1.创建第一个对象,有属性:persons,且为集合
//2.persons集合里是对象,设对象为Person
//3.Person,它有两个属性:name,age
//4.相应的类创建完毕后,就可以解析了
String string = "{persons:[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]}";
Gson gson=new Gson();
Persons persons=gson.fromJson(string, Persons.class);
System.out.println(persons);
}
}
class Persons{
private ArrayList<Person1> persons;
public ArrayList<Person1> getPersons() {
return persons;
}
public void setPersons(ArrayList<Person1> persons) {
this.persons = persons;
}
@Override
public String toString() {
return "Persons [persons=" + persons + "]";
}
public Persons(ArrayList<Person1> persons) {
super();
this.persons = persons;
}
public Persons() {
super();
}
}
class Person1{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
public Person1(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person1() {
super();
}
}
运行结果
第三题:
package 谷歌和阿里解析JSON数据;
import java.util.ArrayList;
import com.google.gson.Gson;
public class Test3 {
public static void main(String[] args) {
//1.第一个对象有属性:no,name,employees,且employees为集合
//2.employees数组中有对象,设该对象为Person
//3.Person有属性:name,age----创建结束
String string = "{no:1,name:'android',employees:[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]}";
Gson gson=new Gson();
Demo demo=gson.fromJson(string, Demo.class);
System.out.println(demo);
}
}
class Demo{
private int no;
private String name;
private ArrayList<Person2> employees;
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Person2> getEmployees() {
return employees;
}
public void setEmployees(ArrayList<Person2> employees) {
this.employees = employees;
}
@Override
public String toString() {
return "Demo [no=" + no + ", name=" + name + ", employees=" + employees + "]";
}
public Demo(int no, String name, ArrayList<Person2> employees) {
super();
this.no = no;
this.name = name;
this.employees = employees;
}
public Demo() {
super();
}
}
class Person2{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
public Person2(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person2() {
super();
}
}
运行结果:
Java对【JSON数据的解析】--Gson解析法的更多相关文章
- 截取HTML中的JSON数据并利用GSON进行解析(Android)
截取HTML中的JSON数据并利用GSON进行解析(Android) 前言 最近在做的一个Android项目,需要自行搭建服务器,队友选择买了阿里云的服务器ESC产品,在数据获取上,我们采用了Andr ...
- 用JAVA进行Json数据解析(对象数组的相互嵌套)
这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...
- Android 之 json数据的解析(jsonReader)
json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...
- HttpURLConnection从网上获取Json数据并解析详解
HttpURLConnection从网上获取Json数据并解析 1.HttpURLConnection请求数据的步骤 (1)构造一个URL接口地址: URL url = new URL("h ...
- iOS开发网络篇—JSON数据的解析
iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...
- javascript中 json数据的解析与序列化
首先明确一下概念: json格式数据本质上就是字符串: js对象:JavaScript 中的几乎所有事务都是对象:字符串.数字.数组.日期.函数,等等. json数据的解析: 就是把后端传来的json ...
- js处理json数据,java处理json数据
一.js处理json数据 处理办法之一是把本机json数据或远程返回json数据用eval函数,使之变成DOM对象. 例如: var people = { "programmers" ...
- Java对【JSON数据的解析】--fastjson解析法
要求:解析下面JSON数据 String string = "{no:1,name:'Android',employees:[{name:'zhangsan',age:20},{name:' ...
- Java对【JSON数据的解析】--官方解析法
要求:解析下面5个JSON数据 1.String string ="{name:'zhangsan',age:18}"; 2.String string2 = "{per ...
随机推荐
- User Browsing Model简介
搜索引擎的点击日志提供了很多有价值的query-doc相关性信息,但是这些信息是有偏的,因为对于用户没有点击过的doc,我们无法确定其是否真实地被用户浏览过.即日志中记录的展现信息与实际的展现信息之间 ...
- MarkDown 学习笔记
MarkDown是一种适用于网络的书写语言,可以帮助你快速书写文档,不必再纠结文档排版的问题.并且它的语法简单,学习成本低,程序员必备技能...助你快速书写技术文档.文章. 用于书写 MarkDown ...
- 【BFS + Hash】拼图——携程2017春招编程题2
写在前面 前天参加了携程的网测--还是感觉自己太!渣!了! _(:з」∠)_ 时光匆匆啊,已经到了开始思考人生的时候了(算了不矫情了)--总之写个博客来督促一下自己.之前太懒了,很多时候都是输在 ...
- 蓝桥杯-循环节长度-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- [C#学习]0.发表之前想说的
在这里我将学习C#编程,首先我也只是一个初学者,只是为了以后的学习,并且方便复习,所以决定在这里记录总结一些知识,简单的写一个教程.所以在这里或许难免有一些错误,欢迎大家指出,一起进步. 在这里我使用 ...
- 搭建本地git仓库
使用工具:git|码云 步骤: 注册码云账号,创建项目名称等. 本地git配置 本地文件目录:git init(初始化创建分支master) 基础配置:git config --global user ...
- 如何高效的进行WebService接口性能测试
版权声明:本文为原创文章,转载请先联系并标明出处 关于接口测试的理解,主要有两类,一类是模块与模块间的调用,此类接口测试应该归属于单元测试的范畴,主要测试模块与模块之间联动调用与返回.此类测试大多关注 ...
- redis单机主从搭建
tar zxvf redis-2.8.13.tar.gz cd redis-2.8.13 make 1.安装主库 mkdir /opt/redis/sbin -p mkdir /opt/redi ...
- windows下安装mongodb以及node.js连接mongodb
一.MongoDB 下载 下载地址 https://www.mongodb.com/download-center#community 选择windows版下载,然后安装. 二.安装完毕后创建数据 ...
- <javaScript> 数组去重的方法总结(2017年)
现在要求去重下面这个数组: const arr = [1, 2, 3, 3, 3, '0', '1', '2', '测试', '重复', '重复', NaN, NaN, false, false]; ...