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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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解析法相关推荐

  1. java 生成json数据_解析和生成JSON数据

    JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值.它对外部(External: 应用toString()方法输出的数值)调 ...

  2. java读取json数据并解析输出对象

    文章目录 1 源数据 2 方案 2.1 maven 阿里 fastjson 2.1.1 解析JSON对象 2.1.2 解析JSON对象数组 1 源数据 {"code":200,&q ...

  3. java数组里套数组_用JAVA进行Json数据解析(对象数组的相互嵌套)

    这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相 ...

  4. c语言json映射,GitHub - xujun621/cson: 基于C语言的json数据映射解析库

    CSON 基于cJSON,运行于C语言平台的json-struct模型解析工具 简介 CSON是一个简单的cJSON的二次封装,相比于使用原生cJSON一层一层解析的方式,CSON采用模型映射的方式, ...

  5. android json.out,Android 之 json数据的解析(jsonReader)

    json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...

  6. 利用百度APIStoreSDK获取Json数据并解析加载到ListView上

    效果图(这里只是截取了List中的一项): 一.:登录百度ApiStore,获取移动sdk Android版(同时有使用文档和示例),将jar包导入到项目中 Android Studio请在放入lib ...

  7. Java操作json数据导入Excel

    话不多说,直接上代码 package com.linkage.bss.crm.commons;import net.sf.json.JSONArray; import net.sf.json.JSON ...

  8. JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下 1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下:     JSONArray ...

  9. C#获取http请求的JSON数据并解析

    文章目录 1️⃣ C#获取http请求的JSON数据并解析 1.1 获取http的JSON数据 1.2 解析JSON数据 优质资源分享 C#获取http请求的JSON数据并解析,第一步,先拿到http ...

  10. swift php json解析,Swift 4.0 | JSON数据的解析和编码

    文 / 菲拉兔 自己撸的图 要求: Platform: iOS8.0+ Language: Swift4.0 Editor: Xcode9 [问题补充2017-09-28] 最近我发现了一个问题:在S ...

最新文章

  1. Linux C使用bool类型 出现错误expected '=', ',', ';', 'asm' or '__attribute__'
  2. Class类是什么? Class.forName()是干什么的?
  3. 嵌入式arm linux 文件系统登入密码的修改笔记
  4. 准爸爸日记——20120311
  5. 手机耗电统计app_Android O新特性:精确统计APP电量消耗
  6. 【练习】2021下半年数据结构刷题笔记和总结 (三)栈 队列 链表 枚举算法
  7. 《算法与数据结构专场》BitMap算法介绍
  8. Java中文乱码问题(转)
  9. 【python基础】ValueError: only 2 non-keyword arguments accepte
  10. 夯实Java基础(二十二)——Java8新特性之Lambda表达式
  11. 7-2 温度转换 (5 分)
  12. 从零基础入门Tensorflow2.0 ----九、44.5 keras转换成具体函数
  13. 安装Android Studio遇到的几个困难和解决办法
  14. <Java>设计一个名为Fan的类
  15. 史上最暖2月谁制造?
  16. java降低if的圈复杂度_几种减少圈复杂度的实践
  17. 2019网络攻击趋势
  18. java pdfreader去除水印_Java - PDF操作库 ItextPdf和PdfBox添加水印
  19. python django 实名认证 调用第三方平台
  20. 在html 源代码消除消除当前页面的脚本发生错误,当前页面的脚本发生错误

热门文章

  1. 人工智能:各种知识收集----不断追加内容
  2. C++的几种遍历形式
  3. 密码(图解密码技术)_第一章_环游密码世界总结
  4. buu Windows系统密码
  5. 【Linux】—— /usr/bin/perl 被 MySQL-community-server-8.0.26-1.el7.x86_64 需要,解决方法
  6. 在linux、optee、ATF中的中断异常向量表
  7. 查看mysql 内核_如何查看和更新数据库内核小版本
  8. angr学习笔记(6)(内存地址单元符号化)
  9. printf()详解
  10. leetcode 最长公共前缀