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字符串之间的转换 | 学步园相关推荐

  1. JS对象与JSON字符串之间的转换

    JSON - JS中的对象只有JS自己认识,其他的语言都不认识  - JSON就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别, 并且可以转换为任意语言中的对象,JSON在开发中主要用来数据 ...

  2. node.js JS对象和JSON字符串之间的转换

    JSON.stringify(obj)将JS对象转为字符串. var json = { aa: ['sdddssd'],   bb: [ '892394829342394792399', '23894 ...

  3. java中gso是什么意思_Java中用Gson解析json字符串

    本文最后更新于2019年9月13日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 因为阿里开源的fastjson前段时间爆出的漏洞实在是太多了(而且有些漏洞他 ...

  4. java fastjson vector转为json_java对象与Json字符串之间的转化(fastjson)

    public class test { public static void main(string[] args) { // 实现java对象与json字符串之间的转化 // 1. person对象 ...

  5. java对象与Json字符串之间的转化(fastjson)

    1. 首先引入jar包 在pom.xml文件里加入下面依赖: <dependency><groupId>com.alibaba</groupId><artif ...

  6. java对象与json字符串的互相转换

    java对象与json字符串的互相转换 1.采用 net.sf.json.JSONObject maven依赖包: 1 <dependency> 2 <groupId>net. ...

  7. Java基础——基本类型和包装类、基本类型和字符串之间的转换

    基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...

  8. 为什么需要java包装类,装箱拆箱,基本类型与字符串之间的转换,java数据类型

    为什么需要包装类? 首先,Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,将每个基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质. 其次,如果 ...

  9. Java中字节数组和十六进制字符串之间的转换

    1. 概述 在本教程中,我们将看看将字节数组转换为十六进制字符串,反之亦然的不同方法. 我们还将了解转换机制并编写我们的实现来实现这一点. 2. 字节和十六进制之间的转换 首先,我们来看看字节和十六进 ...

最新文章

  1. Flask-RESTful之请求处理
  2. 智能车竞赛技术报告 | 全向行进组 - 沈阳工业大学 - 找不到北队
  3. AngularJS中ng-repeat对象的问题
  4. 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)...
  5. 盈客在线陈清平:数据驱动让传统餐饮业焕发新活力
  6. html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
  7. Android studio 快速解决Gradle's dependency cache may be corrupt 和 Gradle配置 gradle-3.*-all.zip快速下载
  8. 四、python沉淀之路--元组
  9. 人人网 api2.0 java_API2.0文档
  10. 3认证老外主任_首批18款App认证名单公布 未来将开展数据安全管理认证
  11. 输入广义表建立双亲表示的树and给定双亲表示的树输出广义表表示的树
  12. jQuery Mobile中文本输入域input、textarea的data-*选项
  13. 域名和IP地址并用的理由
  14. 51NOD 1623 完美消除 数位DP
  15. 一套完整的直播系统开发、直播平台搭建的原理
  16. 安装sql2017时提示Polybase 要求安装Oracle JRE 7更新51 (64位)或更高版本”规则失败...
  17. 万能声卡驱动win10_ASIO驱动(多通道版)-无驱外置USB声卡电音驱动
  18. java 围棋_围棋冠军都输了?用Java编写的智能围棋战力惊人?
  19. 超级记忆/图像数字记忆 110位数字图像转换表 61-70
  20. sql server备份及导出表数据和结构

热门文章

  1. python any()和all()用法
  2. LeetCode简单题之矩阵中的幸运数
  3. LeetCode简单题之查找共用字符
  4. 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)
  5. SpringBoot-web开发(三): 模板引擎Thymeleaf
  6. 自动驾驶传感器比较:激光雷达(LiDAR) vs. 雷达(RADAR)
  7. TVM性能评估分析(一)
  8. ONNX MLIR方法
  9. AIFramework框架Jittor特性(下)
  10. 循环IRNNv2Layer实现