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. apache 基本vhost配置 【目的及过程】

    转: apache 基本vhost配置 2012年04月18日 09:39:28 chamtianjiao 阅读数:74075     经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主 ...

  2. maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式

    maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式: 1.更改项目的jdk为我们安装的jdk2.更改build配置里的 output folder 目录为 xxx项目名/target ...

  3. GBDT原理详解

    从提升树出发,——>回归提升树.二元分类.多元分类三个GBDT常见算法. 提升树 梯度提升树 回归提升树 二元分类 多元分类 面经 提升树 在说GBDT之前,先说说提升树(boosting tr ...

  4. Linux网络协议栈(一)——Socket入门(1)

    转自: http://www.cnblogs.com/hustcat/archive/2009/09/17/1568738.html 1.TCP/IP参考模型为了实现各种网络的互连,国际标准化组织(I ...

  5. ADO.NET入门教程(五) 细说数据库连接池

    摘要 今天我要讲的是数据库连接池.说实话,我表示鸭梨很大.因为相比其他章节来说,连接池相对来说难理解一点.我要用最通俗的语句给大家讲明白,讲透彻却也不是一件很容易的事.但是,连接池又是非常重要的知识点 ...

  6. django中命令行调试程序

    (1)进入到程序manage.py所在的目录下 (2)python manage.py shell 这样可在命令行中引入models.views.class等所有的包,然后进行命令行试运行.

  7. NTT模板

    NTT(快速数论变换)用到的各种素数及原根: https://blog.csdn.net/hnust_xx/article/details/76572828 NTT多项式乘法模板 #include&l ...

  8. Linux 命令详解(八)Systemd 入门教程:实战篇

    Systemd 入门教程:实战篇 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

  9. 【推荐】Nginx基础知识之————多模块(非覆盖安装、RTMP在线人数实例安装测试)

    说明:已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 具体:这里以安装第三方nginx-rtmp-module和nginx-accesskey-2.0.3模块为例,nginx的 ...

  10. STM32Cube自学-1

    为了方便调试,使用Keil5+Proteus.1.新建Proteus STM32项目,选择STMF103C6 2.新建STM32CubeMX项目,选择同型号CPU,选择UART1,Asynchrono ...