1、要用到的包

概念:JSON是javascript对象的一种形态,是一种轻量级的数据交换格式。一般用来在Java EE后台服务和Android或者ios、HTML5之间进行通信的一种数据传递的格式。

     Gson是谷歌推出的一个用于生成和解析JSON数据格式的工具;

2、实例

实体类 people

 package com.shore.entity;

 /**
* @author DSHORE/2019-4-21
*
*/
public class People {
private int pid;
private String pname;
private int age;
private String job;
private double sal; public People() { }
public People(int pid, String pname, int age, String job, double sal) {
super();
this.pid = pid;
this.pname = pname;
this.age = age;
this.job = job;
this.sal = sal;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
@Override
public String toString() {
return "People [pid=" + pid + ", pname=" + pname + ", age=" + age
+ ", job=" + job + ", sal=" + sal + "]";
}
}

gson 测试类

 package com.shore.test;

 import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List; import net.sf.json.JSONObject; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.shore.entity.People; /**
* @author DSHORE/2019-4-21
*
*/
public class GsonTest {
public static void main(String[] args) {
People p = new People();
p.setAge(18);
p.setPname("张三");
p.setJob("工程师");
p.setPid(1);
p.setSal(10000); People p2 = new People();
p2.setAge(20);
p2.setPname("李四");
p2.setJob("设计师");
p2.setPid(2);
p2.setSal(8000); People p3 = new People();
p3.setAge(20);
p3.setPname("王五");
p3.setJob("工程师");
p3.setPid(3);
p3.setSal(15000); //1.将java对象转为json字符串
Gson gson = new Gson();
String json = gson.toJson(p);
System.out.println(json); //返回值:{"pid":1,"pname":"张三","age":18,"job":"工程师","sal":10000.0} //2.将json字符串转为java对象
json = "{\"age\":18,\"job\":\"工程师\",\"pid\":1,\"pname\":\"张三\",\"sal\":10000}";
People people = gson.fromJson(json, People.class);
System.out.println(people);//返回值:People [pid=1, pname=张三, age=18, job=工程师, sal=10000.0]
//p2对象
JSONObject jsonObject = JSONObject.fromObject(p2);
System.out.println(jsonObject);//返回值:{"age":20,"job":"设计师","pid":2,"pname":"李四","sal":8000} //3.将一个对象集合转为json
List<People> list = new ArrayList<People>();
list.add(p);
list.add(p2);
list.add(p3);
json=gson.toJson(list);
System.out.println(json);//返回值:[{"pid":1,"pname":"张三","age":18,"job":"工程师","sal":10000.0},{"pid":2,"pname":"李四","age":20,"job":"设计师","sal":8000.0},{"pid":3,"pname":"王五","age":20,"job":"工程师","sal":15000.0}] //4.将json字符串转为带泛型集合对象
Type listType=new TypeToken<List<People>>(){}.getType();
List<People> list2=gson.fromJson(json,listType);
System.out.println(list2.get(2).getPname());//返回值:王五 get(2)中的2表示:下标值
}
}

json插件的使用(java对象和json字符串对象之间的转换)

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/10746722.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

Java基础98 gson插件的使用的更多相关文章

  1. Java基础97 json插件的使用(java对象和json字符串对象之间的转换)

    1.需要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-19 * */ public class ...

  2. Java | 基础归纳 | Gson && Json

    JSON: JSON就是一种数据的组织形式,用于数据传输. 地址:https://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4 Mav ...

  3. java基础——入门篇

    整体大纲图 1.认识java 核心知识点:JVM.搭建Java开发环境.java的发展史.java特点.java程序类型.垃圾收集器.J2SE下载和安装.环境变量的配置和测试.以及简单的开发工具的使用 ...

  4. Java基础面试题集(一)

    Java基础面试题 一.面向对象编程(OOP) 7 二.常见的Java问题 7 2.1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 7 2.2.JDK和JRE的区别是什么? ...

  5. 精心收集java基础106条

    Java基础 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 一个Java源文件中可以定义多个类,但最多只能定义一个public的类,并且public ...

  6. 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...

  7. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  8. Java基础语法

    java基础学习总结——基础语法1 一.标识符

  9. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

随机推荐

  1. java.lang.OutOfMemoryError: unable to create new native thread 居然是MQ问题

    问题: 开发环境,之前一直正常,某天突然用tomcat启动项目后时不时报如下错误: java.lang.OutOfMemoryError: unable to create new native th ...

  2. plot与legend画图与图例

    画图与图例: legend(x, y = NULL, legend, fill = NULL, col = par("col"), border = "black&quo ...

  3. python2.x到python3.x函数变化

    首先,python 3.x中urllib库和urilib2库合并成了urllib库. 其中urllib2.urlopen()变成了urllib.request.urlopen() urllib2.Re ...

  4. shell中的循环语法

    shell中的循环语法              作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.for循环 1.语法格式1 for 变量 in 值1 值2 值3 ... do ...

  5. tomcat配置好后,启动eclipse中的server,不能出现有猫的页面,提示404

    原因:tomcat与eclipse中的server未关联起来 解决办法:双击servers中的server,在Server Locations中选中第二项,保存之后再进行刚才的操作就好了.

  6. javascript 实现手风琴特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Java 编程下使用 Class.forName() 加载类【转】

    在一些应用中,无法事先知道使用者将加载什么类,而必须让使用者指定类名称以加载类,可以使用 Class 的静态 forName() 方法实现动态加载类.下面的范例让你可以指定类名称来获得类的相关信息. ...

  8. cdh-5.10.0搭建安装

    1.修改主机名为master, slave1, slave2 vim /etc/sysconfig/network HOSTNAME = master HOSTNAME = slave1 HOSTNA ...

  9. baiduTemplate.js 百度JS模板引擎

    baiduTemplate希望创造一个用户觉得“简单好用”的JS模板引擎 先展示两个例子,然后说说对baidutemplate.js的理解,从而将这一工具加到个人百宝箱里. <script id ...

  10. C# this调用构造函数及析构函数

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace trai ...