Json与Gson之简单对象转化和带泛型的List转化

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。在Android Studio中直接引用

compile 'com.google.code.gson:gson:2.2.4'
下面先看一下怎么转化对象:

实体类如下:

public class TestEneity {
 
    /**
     * image : image/mango_cover.jpg
     * content : 火爆进口马来西亚特产大金芒果包邮500G
     * price : 18.9
     * PreferentialPrice : 14.9
     * you : 免邮费
     * number : 23
     */
 
    private String image;
    private String content;
    private String price;
    private String PreferentialPrice;
    private String you;
    private String number;
 
    public String getImage() {
        return image;
    }
 
    public void setImage(String image) {
        this.image = image;
    }
 
    public String getContent() {
        return content;
    }
 
    public void setContent(String content) {
        this.content = content;
    }
 
    public String getPrice() {
        return price;
    }
 
    public void setPrice(String price) {
        this.price = price;
    }
 
    public String getPreferentialPrice() {
        return PreferentialPrice;
    }
 
    public void setPreferentialPrice(String PreferentialPrice) {
        this.PreferentialPrice = PreferentialPrice;
    }
 
    public String getYou() {
        return you;
    }
 
    public void setYou(String you) {
        this.you = you;
    }
 
    public String getNumber() {
        return number;
    }
 
    public void setNumber(String number) {
        this.number = number;
    }
}

使用方式:

TestEneity testEntity=new TestEneity();
testEntity.setImage("image/mango_cover.jpg");
testEntity.setContent("火爆进口马来西亚特产大金芒果包邮500G");
testEntity.setPrice("18.9");
testEntity.setPreferentialPrice("14.9");
testEntity.setYou("免");
testEntity.setNumber("23");
 
System.out.println("----------简单对象之间的转化-------------");
// 简单的bean转为json
Gson gson=new Gson();
String s1 = gson.toJson(testEntity);
System.out.println("简单Bean转化为Json===" + s1);
 
// json转为简单Bean
TestEneity tset = gson.fromJson(s1, TestEneity.class);
System.out.println("Json转为简单Bean===" + tset);

List<TestEneity> testEntityList=new ArrayList<>();
for(int i=0;i<3;i++){
TestEneity testEntity=new TestEneity();
testEntity.setImage("image/mango_cover.jpg");
testEntity.setContent("火爆进口马来西亚特产大金芒果包邮500G");
testEntity.setPrice("18.9");
testEntity.setPreferentialPrice("14.9");
testEntity.setYou("免");
testEntity.setNumber("23");
testEntityList.add(testEntity);
System.out.println("----------带泛型的List之间的转化-------------");
// 带泛型的list转化为json
Gson gson=new Gson();
String s2 = gson.toJson(testEntityList);
System.out.println("带泛型的list转化为json==" + s2);
 
// json转为带泛型的list
List<TestEneity> retList = gson.fromJson(s2,
new TypeToken<List<TestEneity>>() {
}.getType());
for (TestEneity stu : retList) {
System.out.println(stu);
}
}

时间: 2024-11-02 19:40:51

Json与Gson之简单对象转化和带泛型的List转化的相关文章

举例讲解Java的JSON类库GSON的基本用法_java

GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象.Gson支持任意复杂Java对象包括没有源代码的对象. 其他的json解析库还有json-lib:Jackson:com.alibaba.fastjson 小编还是喜欢Google的Gson. 一.使用场景:java对象和json字符串的相互转换:日志输出. 例如: Logger logger = Logger.getLogger(CommonAction.class); Gson g

java-gson转换带泛型的list

问题描述 gson转换带泛型的list gson转换list报了这个错,是什么问题?

java-JAVA 反射构造函数带泛型参数的类

问题描述 JAVA 反射构造函数带泛型参数的类 JAVA 反射构造函数带泛型参数的类 比如说: public class User<T extends Person> { private T rootType; public User(T rootType){ this.rootType = rootType; } @Override public String toString() { return "User [rootType=" + rootType + "

百度统计“页面转化”功能,全面监控网站转化效果

很多客户在进行http://www.aliyun.com/zixun/aggregation/11238.html">百度推广的时候,不知道如何评估计划.单元.关键词的推广效果.要检验效果,就要知道潜在客户在您的网站上是否完成了您期望的行动,知道哪些是黄金流量,以及流量流失的原因,找到优化方案.百度统计"页面转化"功能,全面监控网站转化效果,帮助您更有针对性地改善百度推广方案. 什么是转化?转化即指潜在客户完成一次您期望的行动,与您的推广目的和对推广效果的定义密切相关.

java中JSON库JSON.simple/GSON/Jackson/JSONP性能对比

JSON因为其易于人阅读和编写,同时也易于机器解析和生成,兼容性强,已经成为当前服务器与WEB应用之间数据传输的公认标准.本文我们在java编程语言运行了一个基准测试来对常用的几个JSON库进行了测试,看看在解析不同大小的文件时库的速度是最快性能最好的是哪个库. JSON通常用于传输及解析大文件.这对运行在Hadoop或者是Spark集群上的数据处理程序而言是个很常见的场景.在给定的文件大小下,你可以看到不同库之间的解析速度存在着明显的差别. 高吞吐量的情况下,会频繁地传输并解析小文件,因此一开

MathType独立公式怎么转化为带编号公式

  具体操作方法如下: 1.插入编号: Word中已输入好独立公式的那一行,在公式之前或之后想要加上公式编号的位置,双击鼠标,光标定位后,选择在word里的Mathtype--Insert Equation Numbers点击,就可按已有的顺序为独立公式加上新的编号.这种方式也可以为行间公式上加入编号. 选择MathType菜单下的Insert Equation Numbers即可插入编号 2.切换模式: 1)通过回车,行间公式单独一行,可以相同的方法给公式加编号,问题就解决了. 2)独立公式:

数组转化-含有汉字的数组怎么转化为整型数组

问题描述 含有汉字的数组怎么转化为整型数组 char carnode[9]="黑A47J65"; int keynumber[9]; Into()函数将carnode数组中的数据全部转化为整型数据存入数组keynumber中,问汉字占两个字节,该如何实现转化较为有效便捷?谢谢 解决方案 wchar_t carnode[9]="黑A47J65"; int keynumber[7]; int x = (int)carnode[i]; keynumber[0] = x /

将Java的List结构通过GSON库转换为JSON的方法示例_java

发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson. GitHub主页:https://github.com/google/gson 经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段. 将List或者Map转换成json非常简单:     public String ge

枚举类型-json 转化带枚举属性的对象

问题描述 json 转化带枚举属性的对象 我在后台定义了一个实体,这个实体里面有一个属性是枚举类型的, 现在需要前台将这个对象通过ajax传递到后台 这个枚举类型要怎么传啊 或者说,这个js的对象要怎么定义啊 解决方案 后台不序列化成字符串? 解决方案二: 不是js序列化成字符串,然后传到后台,解析成对象么,我是这样操作的,但是现在转化的时候提示string不能转化成我定义的枚举类型,注:这个枚举类型是我在后台定义的 解决方案三: 可以用Newtonsoft.Json.Net20.dll将你的C