java 解析json,解析json的方法,基于JAVA中的四种JSON解析方式详解

java 解析json,解析json的方法,基于JAVA中的四种JSON解析方式详解

这篇文章主要介绍了基于Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)中的四种JSON解析方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

我们在日常开发中少不了和JSON数据打交道,那么我们来看看Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)中常用的JSON解析方式。

1、JSON官方

2、GSON

3、FastJSON

杰克逊

JSON操作涉及到的类:

公共课学生{

私有int id

私有字符串名称;

私人年龄;

public int getId() {

返回id;

}

public void setId(int id) {

this.id=id

}

公共字符串getName() {

返回名称;

}

公共void集合名称(字符串名){

this.name=name

}

public int getAge() {

回归年龄;

}

公共无效存储(整数){

this.age=年龄;

}

public Student(int id,String name,int age) {

super();

this.id=id

this.name=name

this.age=年龄;

}

公共学生(){

super();

}

@覆盖

公共字符串toString() {

返回学生[id=' id ',name=' name ',age=' age ']';

}

}

公共课成绩{

私有int id

私有字符串名称;

私有数组列表学生状态

public Grade(int id,String name,ArrayListStudent stus) {

super();

this.id=id

this.name=name

this.stus=stus

}

公共等级(){

super();

}

@覆盖

公共字符串toString() {

返回Grade [id=' id ',name=' name ',stus=' stus ']';

}

public int getId() {

返回id;

}

public void setId(int id) {

this.id=id

}

公共字符串getName() {

返回名称;

}

公共void集合名称(字符串名){

this.name=name

}

公共数组列表学生getStus(){

返回secure telephone units 电话安全装置

}

public void setStus(数组列表学生stus){

this.stus=stus

}

}

JSON官方的解析最具有通用性,但是有点小麻烦。

公共类JSONTest {

//解析JSON

@测试

公共void test1()抛出JSONException{

//对象嵌套数组嵌套对象

String json1='{'id':1,' name':'JAVAEE-1703 ',' stus':[{'id':101,' name ':'刘一,'年龄':16 }]} ';

//数组

字符串JSON 2="["北京','天津','杭州']';

//1、

//解析第一层-对象

JSONObject作业对象1=新JSON对象(JSON 1);

年级年级=新年级();

等级。setid(作业对象1。getint(' id ');

等级。设置名称(作业对象1。getstring(' name ');

ArrayList学生stus=new ArrayList();

等级。setstus(斯图);

//解析第二层-数组

JSON数组JSON数组2=作业对象1。getjson数组(' stus ');

//遍历数组获取元素-对象

for(int I=0;ijsonarray 2。长度();i ){

//解析第三层-对象

JSON对象作业对象3=JSON数组2。getjson对象(I);

学生学生=新生(工作对象3。getint(' id ')、作业对象3。getstring(' name ')、作业对象3。getint(' age ');

grade.getStus().添加(学生);

}

系统。出去。println(年级);

//获取当前对象的所有属性的迭代器对象

//迭代器字符串迭代器=作业对象1。keys();

//while (iterator.hasNext()) {

//String key=iterator。next();

//System.out.println('属性:'键);

//}

//2、

//获取数组对象

JSON数组jArray=新JSON数组(JSON 2);

ArrayList string list=new ArrayList();

//遍历获取元素

for(int I=0;ijarray。长度();i ){

//jarray。optstring(I);//等价于getXXX

列表。补充(jarray。getstring(I));

}

System.out.println('解析结果:'列表);

}

//生成JSON

@测试

公共void test2()抛出JSONException{

JSON对象jo1=new JSON对象();

jo1.put('id ',1001);

jo1.put('name ','范老');

jo1.put('年龄',20);

JSON对象jo2=new JSON对象();

jo2.put('id ',1002);

jo2.put('name ','平平');

jo2.put('年龄',19);

JSON数组ja2=new JSON数组();

ja2。put(jo1);

ja2。put(jo2);

JSON对象jo3=new JSON object();

jo3.put('id ',11);

jo3.put('name ',' JAVAEE-1704 ');

jo3.put('stus ',ja2);

字符串JSON=jo3。tostring();

系统。出去。println(JSON);

}

}

GSON解析是谷歌的,也比较好用

公共类GSONTest {

//解析

@测试

公共void test1() {

//对象嵌套数组嵌套对象

String json1='{'id':1,' name':'JAVAEE-1703 ',' stus':[{'id':101,' name ':'刘一,'年龄':16 }]} ';

//数组

字符串JSON 2="["北京','天津','杭州']';

Gson Gson=new Gson();

//1、

//解析对象:第一个参数:待解析的字符串第二个参数结果数据类型的班级对象

年级grade=gson.fromJson(json1,年级。类);

系统。出去。println(年级);

//2、

//解析数组要求使用类型

ArrayList string list=gson。来自JSON(JSON 2,

new TypeTokenArrayListString(){ } .getType());

系统。出去。println(列表);

}

//生成

@测试

public void test2(){

ArrayList学生列表=new ArrayList();

for(int I=1;i3;i ){

list.add(新生(101我,’码子,20i));

}

等级等级=新等级(100001,'张三,列表);

Gson Gson=new Gson();

//将对象转换为诶JSON格式字符串

字符串JSON=gson。toj son(年级);

系统。出去。println(JSON);

}

}

法斯特森是阿里巴巴的产品,效率最高

公共类FASTJson {

//解析

@测试

公共void test1() {

//对象嵌套数组嵌套对象

String json1='{'id':1,' name':'JAVAEE-1703 ',' stus':[{'id':101,' name ':'刘铭,'年龄':16 }]} ';

//数组

字符串JSON 2="["北京','天津','杭州']';

//1、

//静态方法

年级年级=JSON。解析对象(JSON 1,grade。类);

系统。出去。println(年级);

//2、

ListString list=JSON。解析数组(JSON 2,string。类);

系统。出去。println(列表);

}

//生成

@测试

public void test2(){

ArrayList学生列表=new ArrayList();

for(int I=1;i3;i ){

list.add(新生(101我,’码子,20i));

}

等级等级=新等级(100001,'张三,列表);

字符串JSON=JSON。tojsonstring(等级);

系统。出去。println(JSON);

}

}

杰克逊解析JSON,SpringMVC内置的解析器就是这个

公共类杰克逊斯特{

//解析

@测试

公共void test1()引发异常{

//对象嵌套数组嵌套对象

String json1='{'id':1,' name':'JAVAEE-1703 ',' stus':[{'id':101,' name ':'刘一,'年龄':16 }]} ';

//数组

字符串JSON 2="["北京','天津','杭州']';

//1、

对象映射器mapper=新对象映射器();

等级grade=mapper。读值(JSON 1,成绩。类);

系统。出去。println(年级);

//2、

数组列表字符串列表=映射器。读取值(JSON 2、

新的typerreferencearrayliststring(){

});

系统。出去。println(列表);

}

//生成

@测试

公共void test2()引发JsonProcessingException{

ArrayList学生列表=new ArrayList();

for(int I=1;i3;i ){

list.add(新生(101我,’码子,20i));

}

等级等级=新等级(100001,'张三,列表);

对象映射器mapper=新对象映射器();

//将对象转换为JSON格式字符串

字符串JSON=mapper。writevalueasstring(grade);

系统。出去。println(JSON);

}

}

除了JSON官方的对类没有要求,剩下的都要求是标准的类,否则无法解析,因为都用到了反射。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • js把字符串转为json,json字符串转换成json对象
  • js把字符串转为json,json字符串转换成json对象,js 将json字符串转换为json对象的方法解析
  • json语法格式,json格式定义
  • json语法格式,json格式定义,Json格式详解
  • json格式数据类型,什么是JSON数据-其常见格式是什么-
  • json格式数据类型,什么是JSON数据-其常见格式是什么-,JSON 数据格式详解
  • json格式怎么写,json文件内容格式
  • json格式怎么写,json文件内容格式,json文件书写格式详解
  • json数组对象转化为json字符串,js把数组转化为json
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法
  • json字符串转换成对象有哪几种方法,字符串转化为json的方法,JSON对象转化为字符串详解
  • json基础介绍与详细用法教程,json基础知识
  • json基础介绍与详细用法教程,json基础知识,JSON基础介绍与详细用法
  • json去掉反斜杠,json字符串中有反斜杠
  • json去掉反斜杠,json字符串中有反斜杠,详解json串反转义(消除反斜杠)
  • 留言与评论(共有 条评论)
       
    验证码: