gson:对象与json的转换

1、  使用Gson的toJson()方法将对象转换成Json字符串:

方法:Gson.toJson(Object src)

person.java

public class Person {
private String name;
    private int age;
public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

GsonTest.java

public class GsonTest {
    public static void main (String[] args){

    Gson gson = new Gson();
    List<Person> persons = new ArrayList<Person>();

    Person p1 = new Person();
    p1.setName("张三");
    p1.setAge(23);

    Person p2 = new Person();
    p2.setName("李四");
    p2.setAge(24);

    persons.add(p1);
    persons.add(p2);

    System.out.println(persons);
    String str = gson.toJson(persons); //对象转换为json
    System.out.println(str);
}
}

输出得到:[[email protected], [email protected]]

[{"name":"张三","age":23},{"name":"李四","age":24}]

直接打印对象实际上打印的是Object的toString方法返回的字符串,该字符串由类名(对象是该类的一个实例)、标记符“@”和此对象哈希码的无符号十六进制表示组成。即:getClass().getName() + ‘@‘ + Integer.toHexString(hashCode())

2、gson的反序列化:gson提供了fromJson()方法来实现从Json相关对象到java实体的方法。

方法:Gson.fromJson(String json, Class<Person> classOfT) throws JsonSyntaxException

JsonTest.java

public class JsonTest {
    public static void main(String[] args) throws JSONException{
        JSONObject pJson = new JSONObject();
        pJson.put("name", "王五");
        pJson.put("age",25);
        System.out.println(pJson);

        Gson gson = new Gson();
        Person p = gson.fromJson(pJson.toString(), Person.class);
        System.out.println(p);
    }
}

输出结果:

{"age":25,"name":"王五"}

[email protected]

JSONArray转换成列表类型:

方法:Gson.fromJson(String json, Type typeOfT) throws JsonSyntaxException

JsonArrayTest.java

public class JsonArrayTest {
    public static void main(String[] args) throws JSONException{
        JSONObject p01 = new JSONObject();
        p01.put("name", "赵六");
        p01.put("age", 26);

        JSONObject p02 = new JSONObject();
        p02.put("name", "秦七");
        p02.put("age",27);

        JSONArray ja = new JSONArray();
        ja.put(p01);
        ja.put(p02);
        System.out.println(ja);

        Gson gson = new Gson();
        List<Person> ps = gson.fromJson(ja.toString(), new TypeToken<List<Person>>(){}.getType());
        System.out.println(ps);
    }
}

输出得到:

[{"age":26,"name":"赵六"},{"age":27,"name":"秦七"}]

[[email protected], [email protected]3]

上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。

时间: 2024-11-02 15:03:23

gson:对象与json的转换的相关文章

Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)

首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐了. 手动创建JSONObject与JSONArray有用,用于读取文件对字符串进行处理 -----------------------------jsonlib操作复杂,转换Map与list<map>更是复杂---------------- Jar包 User.java 1 package Te

Java中对象和JSON互相转换的工具类

业务场景 工作中,经常出现:JSON 格式的字符串与 Java 对象互相转换的情形.比如单点登陆,将“用户信息”保存到 redis 时,Java 对象要转成 JSON 字符串,从 redis 取出“用户信息”后,要将 JSON 字符串转成 Java 对象.使用MongoDB保存和读取某些运算的结果集也是如此,因此,我们需要一个合适的轮子. JSON有两种格式,一种是对象,另一种是数组.大括号保存对象,中括号保存数组. {"name":"JSON","add

JavaScrip t对象和 JSON 数据格式转换

<script> //定义一个js对象 var person = { firstName: "John", lastName: "Doe", age: 30 }; var json = JSON.stringify(person);//把对象系列化为字符串(也就是json的数据表示格式) document.writeln(json);//output:{"firstName":"John","lastNa

C#下对象与JSON串互相转换

最近在写点东西,要用到对象和JSON互相转换的,总结了下,也可能有错误,也有网上找来的东西,结合在这里记录一下. 在.NET 2.0下,是需要自己添加Newtonsoft.Json.dll动态链接库的 using System; using System.IO; using System.Text; using Newtonsoft.Json; namespace OfflineAcceptControl.UCTools { public class JsonTools { // 从一个对象信息

对象转换为json格式,类似中间层API

<一头扎进SpringMvc视频教程\<一头扎进SpringMvc>第四讲 源码\> 对象自动转换为json格式要在 spring-mvc.xml添加一个东西 ,和对应的命名空间引用和规范,和对应的jar包 <!-- 支持对象与json的转换. --> <mvc:annotation-driven/>  //注解驱动 提到目前已经引用了一堆很乱的jar包,maven时就简单了. <beans xmlns="http://www.springf

jQuery中serializeArray方法的使用及对象与字符串的转换

使用jQuery中的serializeArray()方法可以方便的将表单中的各个信息,转化为多个{name:xx,value:xx}对象的数组, 再使用遍历的方式可以方便的将数组转化为json对象, 代码如下 <p id="results"><b>Results: </b> </p> <form> <select name="single"> <option>Single</o

java对象与json串互转

1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSONStr.toString(); json串—java对象: JSONObject jsonObject = JSONObject.fromObject( jsonString ); Object pojo = JSONObject.toBean(jsonObject,pojoCalss); 2:j

使用Google的Gson实现对象和json字符串之间的转换

需要gson.jar 1.JsonUtil.java Java代码   package com.snail.json; import java.lang.reflect.Type; import com.google.gson.Gson; /** * Java对象和JSON字符串相互转化工具类 * @author penghuaiyi * @date 2013-08-10 */ public final class JsonUtil { private JsonUtil(){} /** * 对象

Gson解析json字符串、json数组转换成对象

实体类: public class Product { private int id; private String name; private String date; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name