手机版

FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

fastJson对于json格式字符串的解析主要用到了一下三个类:

JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

JSONObject:fastJson提供的json对象。

JSONArray:fastJson提供json数组对象。

我们可以把JSONObject当成一个映射字符串,对象来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作。我们看一下源码。

同样我们可以把JSONArray当做一个ListObject,可以把JSONArray看成JSONObject对象的一个集合。

此外,由于JSONObject和JSONArray继承了JSON,所以说也可以直接使用两者对JSON格式字符串与JSON对象及javaBean之间做转换,不过为了避免混淆我们还是使用JSON。

首先定义三个json格式的字符串,作为我们的数据源。

//json字符串-简单对象型私有静态最终字符串JSON _ OBJ _ STR=' { \ ' studentName ' : ' lily \ ',\ ' studentAge ' :12 }//JSON字符串-数组类型私有静态最终字符串JSON _ ARRAY _ STR='[{ \ '学生姓名' : ' lily \ ',\ ' studentAge ' :12 ',{ \ ' studentName ' : ' Lucy \ ',\ '学生年龄' :15 }]';//复杂格式json字符串private static final String COMPLEX _ JSON _ STR=' { \ '教师姓名' : ' crystal \ ',\ '教师姓名' :27,\ '课程' : { \ '课程名称' : '英语\ ',\ '代码' :1270,\ '学生' :[\ '学生姓名' 3: ' lily \ ',\ '学生姓名' 3:12 ','示例1:JSON格式字符串与JSON对象之间的转换。

示例1.1-json字符串-简单对象型与JSONObject之间的转换

/** * json字符串-简单对象型与JSONObject之间的转换*/public static void testJSONStrToJSONObject(){ JSONObject JSONObject=JSON。解析对象;//JSON对象JSON对象1=JSON对象。解析对象;//因为JSONObject继承了JSON,所以这样也是可以的系统。出去。println(JSON对象。getstring(' studentName ')' : ' JSON对象。getinteger(' studentAge ');}示例1.2-json字符串-数组类型与JSONArray之间的转换

/** * json字符串-数组类型与JSONArray之间的转换*/public static void testjsonstrtosonarray(){ JSON ARRAY JSON ARRAY=JSON。parse ARRAY(JSON _ ARRAY _ STR);//JSON ARRAY JSON ARRAY 1=JSON ARRAY。parse ARRAY(JSON _ ARRAY _ STR);//因为JSONArray继承了JSON,所以这样也是可以的//遍历方式1 int size=JSonarray。size();for(int I=0;一、尺寸;I){ JSON对象JSON对象=JSON数组。getjson对象(I);系统。出去。println(JSON对象。getstring(' studentName ')' : ' JSON对象。getinteger(' studentAge ');} //遍历方式2代表(对象obj : jsonArray){ JSON对象JSON对象=(JSON对象)obj;系统。出去。println(JSON对象。getstring(' studentName ')' : ' JSON对象。getinteger(' studentAge ');} }示例1.3-复杂json格式字符串与JSONObject之间的转换

/** * 复杂json格式字符串与JSONObject之间的转换*/public static void testcomplexssonstrtojsonobject(){ JSONObject JSONObject=JSON。parse object(COMPLEX _ JSON _ STR);//JSON对象JSON对象1=JSON对象。parse object(COMPLEX _ JSON _ STR);//因为JSONObject继承了JSON,所以这样也是可以的字符串教师名=jsonObject.getString('教师名');integer teacherAge=jsonoobject。getinteger(' teacherAge ');JSON对象课程=JSON对象。getjson对象(“课程”);JSONArray学生=jsonObject.getJSONArray('学生');}示例2:JSON格式字符串与javaBean之间的转换。

首先,我们针对数据源所示的字符串,提供三个javaBean。

公共类学生{私有字符串学生名称;私有整数学生;public String getStudentName(){ return studentName;} public void setStudentName(String studentName){ this。studentName=studentName} public Integer getStudentAge(){ return studentAge;} public void setStudentAge(Integer studentAge){ this。studentAge=studentAge} }公开课课程{私有字符串课程名称;私有整数代码;public String getCourseName(){ return courseName;} public void setCourseName(String courseName){ this。courseName=courseName}公共整数GetCode(){ 0返回代码;} public void setCode(整数代码){ this.code=code} }公共课教师{私有字符串教师姓名私有整数教师页面;私人课程;私人列表学生;public String getter name(){ return Tickername;} public void setTeacherName(String teacherName){ this。教师姓名=教师姓名;} public Integer getTeacherAge(){ return teacherAge;} public void setTeacherAge(Integer teacherAge){ this。教师职位=教师职位;}公共课程getCourse(){ 0返回课程;} public void setCourse(课程课程){ this . course=course } public liststorgetstudents(){ return students;} public void setStudents(列出学生学生){ this。学生=学生;}}json字符串与javaBean之间的转换推荐使用TypeReferenceT这个类,使用泛型可以更加清晰,当然也有其它的转换方式,这里就不做探讨了。

示例2.1-json字符串-简单对象型与javaBean之间的转换

/** * json字符串-简单对象与JavaBean_obj之间的转换*/public static void testjsonstrtojavabean obj(){ Student Student=JSON。parseobject(JSON _ OBJ _ STR,new typereferencesstudent(){ });//Student Student 1=JSON对象。parseobject(JSON _ OBJ _ STR,new typereferencesstudent(){ });//因为JSONObject继承了JSON,所以这样也是可以的系统。出去。println(学生。getstudentname()' : '学生。getstudentage());}示例2.2-json字符串-数组类型与javaBean之间的转换

/** * json字符串-数组类型与JavaBean_List之间的转换*/public static void testjsonstrtojavabean list(){ ArrayList student=JSON。parseobject(JSON _ ARRAY _ STR,new typereferenceARRAylist student(){ });//ArrayList学生学生1=jsonarray。parseobject(JSON _ ARRAY _ STR,new typereferenceARRAylist student(){ });//因为JSONArray继承了JSON,所以这样也是可以的学生(学生:学生){系统。出去。学生。getstudentname()' : ' Student。getstudentage());} }示例2.3-复杂json格式字符串与与javaBean之间的转换

/** * 复杂json格式字符串与JavaBean_obj之间的转换*/public static void testcomplexssonstrtto JavaBean(){ 0教师教师=JSON。parseobject(COMPLEX _ JSON _ STR,new typereferencettern(){ });//教师教师1=JSON。parseobject(COMPLEX _ JSON _ STR,new typereferencettern(){ });//因为JSONObject继承了JSON,所以这样也是可以的string Tickername=教师。getTextRename();整数教师=教师。getteacherage();课程课程=教师。getcourse();列表学生=老师。getstudents();}对于TypeReferenceT,由于其构造方法使用保护进行修饰,所以在其他包下创建其对象的时候,要用其实现类的子类:新类型引用错误(){ }

此外的:

1,对于JSON对象与JSON格式字符串的转换可以直接用toJSONString()这个方法。

2、javaBean与JSON格式字符串之间的转换要用到:JSON。TojsonString(obj);

3、javaBean与json对象间的转换使用:JSON.toJSON(obj),然后使用强制类型转换,JSONObject或者JSONArray。

最后,作为程序员,我们应该认真深入地研究这个问题。当你对原理有了透彻的理解,开发起来就会得心应手,开发中的很多问题和疑惑也就很容易解决了,面对其他问题也可以向别人学习。当然,你在开发中没有太多时间去研究原理。发展要以功能实现为基础。项目启动后,你有充足的时间或空余时间。你可以深入问题的底部,深入研究一项技术,因为它对一个程序员的成长非常重要。

摘要

以上是边肖介绍的JSON格式字符串、JSON对象和JavaBean之间的转换。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。