java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性。近几年来已经和XML一样成为C/S架构中广泛采用的数据格式。有关JSON的更多知识,请参考以下内容:http://json.org/json-zh.html
在服务器和客户端之间使用JSON数据格式进行通信,经常会涉及到JAVA对象和JSON字符串之间的转换。通常,我们可以使用一些JSON解析工具,例如:Gson,FastJson等。当然,我们也可以手动解析,只是会比较繁琐。
下面通过一个实例来介绍使用Gson来进行JAVA嵌套对象和JSON字符串之间的相互转换。
MainActivity
package com.example.jsonsample;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
import com.example.jsonsample.data.Student;
import com.example.jsonsample.data.Subject;
import com.google.gson.Gson;
public class MainActivity extends Activity {
private TextView mTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView)findViewById(R.id.MyTextView);
Gson gson = new Gson();
//创建一个学生对象
Student originStudent = getStudent();
//将学生对象转换成JSON串
String reponse = gson.toJson(originStudent);
//将JSON串再还原成一个学生对象
Student newstudent = gson.fromJson(reponse, Student.class);
mTextView.setText(reponse);
}
public Student getStudent() {
Subject sub1 = new Subject();
sub1.setSubject_name("语文");
sub1.setTeacher_name("张老师");
Subject sub2 = new Subject();
sub2.setSubject_name("数学");
sub2.setTeacher_name("黄老师");
Subject sub3 = new Subject();
sub3.setSubject_name("英文");
sub3.setTeacher_name("林老师");
ArrayList subjects = new ArrayList();
subjects.add(sub1);
subjects.add(sub2);
subjects.add(sub3);
Student student = new Student();
student.setName("杨辉");
student.setSubjects(subjects);
return student;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Student
package com.example.jsonsample.data;
import java.io.Serializable;
import java.util.ArrayList;
/**
* 学生类,包含学生名字和学科列表
*
* @author yanghui
*/
public class Student implements Serializable {
/**
* Serializable
*/
private static final long serialVersionUID = -2689979321936117293L;
private String name;
private ArrayList subjects;
/**
*
* @return name 学生名字
*/
public String getName() {
return name;
}
/**
*
* @param name 学生名字
*/
public void setName(String name) {
this.name = name;
}
/**
*
* @return subjects 学科列表
*/
public ArrayList getSubjects() {
return subjects;
}
/**
*
* @param subjects 学科列表
*/
public void setSubjects(ArrayList subjects) {
this.subjects = subjects;
}
}
Subject
package com.example.jsonsample.data;
import java.io.Serializable;
/**
* 学科类,包含学科名字和学科老师名字
*
* @author yanghui
*/
public class Subject implements Serializable{
/**
* serialVersionUID
*/
private static final long serialVersionUID = -2574980011831897251L;
private String subject_name;
private String teacher_name;
/**
*
* @return subject_name 学科名称
*/
public String getSubject_name() {
return subject_name;
}
/**
* @param subject_name 学科名称
*/
public void setSubject_name(String subject_name) {
this.subject_name = subject_name;
}
/**
*
* @return teacher_name 学科老师的名字
*/
public String getTeacher_name() {
return teacher_name;
}
/**
*
* @param teacher_name 学科老师的名字
*/
public void setTeacher_name(String teacher_name) {
this.teacher_name = teacher_name;
}
}
图片预览:
java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园相关推荐
- JS对象与JSON字符串之间的转换
JSON - JS中的对象只有JS自己认识,其他的语言都不认识 - JSON就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别, 并且可以转换为任意语言中的对象,JSON在开发中主要用来数据 ...
- node.js JS对象和JSON字符串之间的转换
JSON.stringify(obj)将JS对象转为字符串. var json = { aa: ['sdddssd'], bb: [ '892394829342394792399', '23894 ...
- java中gso是什么意思_Java中用Gson解析json字符串
本文最后更新于2019年9月13日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 因为阿里开源的fastjson前段时间爆出的漏洞实在是太多了(而且有些漏洞他 ...
- java fastjson vector转为json_java对象与Json字符串之间的转化(fastjson)
public class test { public static void main(string[] args) { // 实现java对象与json字符串之间的转化 // 1. person对象 ...
- java对象与Json字符串之间的转化(fastjson)
1. 首先引入jar包 在pom.xml文件里加入下面依赖: <dependency><groupId>com.alibaba</groupId><artif ...
- java对象与json字符串的互相转换
java对象与json字符串的互相转换 1.采用 net.sf.json.JSONObject maven依赖包: 1 <dependency> 2 <groupId>net. ...
- Java基础——基本类型和包装类、基本类型和字符串之间的转换
基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...
- 为什么需要java包装类,装箱拆箱,基本类型与字符串之间的转换,java数据类型
为什么需要包装类? 首先,Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,将每个基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质. 其次,如果 ...
- Java中字节数组和十六进制字符串之间的转换
1. 概述 在本教程中,我们将看看将字节数组转换为十六进制字符串,反之亦然的不同方法. 我们还将了解转换机制并编写我们的实现来实现这一点. 2. 字节和十六进制之间的转换 首先,我们来看看字节和十六进 ...
最新文章
- Flask-RESTful之请求处理
- 智能车竞赛技术报告 | 全向行进组 - 沈阳工业大学 - 找不到北队
- AngularJS中ng-repeat对象的问题
- 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)...
- 盈客在线陈清平:数据驱动让传统餐饮业焕发新活力
- html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
- Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle-3.*-all.zip快速下载
- 四、python沉淀之路--元组
- 人人网 api2.0 java_API2.0文档
- 3认证老外主任_首批18款App认证名单公布 未来将开展数据安全管理认证
- 输入广义表建立双亲表示的树and给定双亲表示的树输出广义表表示的树
- jQuery Mobile中文本输入域input、textarea的data-*选项
- 域名和IP地址并用的理由
- 51NOD 1623 完美消除 数位DP
- 一套完整的直播系统开发、直播平台搭建的原理
- 安装sql2017时提示Polybase 要求安装Oracle JRE 7更新51 (64位)或更高版本”规则失败...
- 万能声卡驱动win10_ASIO驱动(多通道版)-无驱外置USB声卡电音驱动
- java 围棋_围棋冠军都输了?用Java编写的智能围棋战力惊人?
- 超级记忆/图像数字记忆 110位数字图像转换表 61-70
- sql server备份及导出表数据和结构