`
eksliang
  • 浏览: 599613 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Gson使用一(Gson)

阅读更多

转载请出自出处:http://eksliang.iteye.com/blog/2175401

一.概述

从结构上看Json,所有的数据(data)最终都可以分解成三种类型:

  1. 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"ickes"这个字符串。
  2. 第二种类型是序列(sequence),又叫做数组(array)或列表(List),比如["北京","上海"]。
  3. 第三种类型是映射(mapping),又叫做散列(hash)或字典(dictionary),比如"name":"ickes"。

Json的规格非常简单,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

  1. 并列的数据之间用逗号(",")分隔。
  2. 映射用冒号(":")表示。
  3. 集合(数组)用方括号("[]")表示。
  4. 对象用大括号("{}")表示

二、简单转换

实体类User:

package com.ickes.json.daomain;

import java.util.Date;

public class User {
	private String  id;
	private String  userName;
	private String  userPwd;
	private Integer age;
	private Float   price;
	private Date    birthday;
	
	public User(String id, String userName, String userPwd, Integer age,
			Float price, Date birthday) {
		this.id = id;
		this.userName = userName;
		this.userPwd = userPwd;
		this.age = age;
		this.price = price;
		this.birthday = birthday;
	}
        get和set方法省略........!
	@Override
	public String toString() {
		return "User [id=" + id + ", userName=" + userName + ", userPwd="
				+ userPwd + ", age=" + age + ", price=" + price + ", birthday="
				+ birthday + "]";
	}
	
}

单个对象之间的转换,参考实例

import java.util.Date;

import com.google.gson.Gson;
import com.ickes.json.daomain.User;

/**
 * 简单对象之间的转换
 * @author Ickes
 */
public class GsonTest {
	public static void main(String[] args) {
		Gson gson = new Gson();
		User user = new User("A001", "xl","xl_123",24,12000F,new Date());
		//java对象转换为Json字符串
		String json=gson.toJson(user);
		System.out.println("java对象转json字符串:"+json);
		//Json字符串转换为java对象
		User user1 = gson.fromJson(json,User.class);
		System.out.println("json字符串转java对象:"+user1.toString());
	}
}

返回结果

 

java对象转json字符串:
{"id":"A001","userName":"xl","userPwd":"xl_123","age":24,"price":12000.0,"birthday":"Jan 13, 2015 1:43:22 PM"}
json字符串转java对象:
User [id=A001, userName=xl, userPwd=xl_123, age=24, price=12000.0, birthday=Tue Jan 13 13:43:22 CST 2015]

  

 

 集合之间的转换

package com.ickes.json;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import com.google.gson.Gson;
import com.ickes.json.daomain.User;
/**
 * 集合之间的转换
 * @author Ickes
 *
 */
public class GsonTest {
	public static void main(String[] args) {
		Gson gson = new Gson();
		User user1 = new User("A001", "xl","xl_123",24,12000F,new Date());
		User user2 = new User("A002", "x2","xl_123",24,13000F,new Date());
		User user3 = new User("A003", "x3","xl_123",24,14000F,new Date());
		//集合对象转json
		List<User> users = new ArrayList<User>();
		users.add(user1);
		users.add(user2);
		users.add(user3);
		String jsonObj =gson.toJson(users);
		System.out.println("List集合对象转换为Json字符串:"+jsonObj);
		//集合字符串转json
		List<String> strs = new ArrayList<String>();
		strs.add("aaaa");
		strs.add("bbbb");
		strs.add("cccc");
		String jsonStr = gson.toJson(strs);
		System.out.println("List集合字符串转换为Json字符串:"+jsonStr);
		
		//json转集合对象
		Type typeObj = new TypeToken<List<User>>(){}.getType();
		users=gson.fromJson(jsonObj,typeObj);
		System.out.println("Json字符串转换为List集合对象:");
		for (User user : users) {
			System.out.println(user);
		}
		//json转集合字符串
		Type typeStr = new TypeToken<List<String>>(){}.getType();
		strs=gson.fromJson(jsonStr,typeStr);
		System.out.println("Json字符串转换为List集合字符串:"+strs);
		
	}
}

 输出结果

List集合对象转换为Json字符串:
[{"id":"A001","userName":"xl","userPwd":"xl_123","age":24,"price":12000.0,"birthday":"Jan 13, 2015 1:41:35 PM"},
 {"id":"A002","userName":"x2","userPwd":"xl_123","age":24,"price":13000.0,"birthday":"Jan 13, 2015 1:41:35 PM"},
 {"id":"A003","userName":"x3","userPwd":"xl_123","age":24,"price":14000.0,"birthday":"Jan 13, 2015 1:41:35 PM"}]
List集合字符串转换为Json字符串:["aaaa","bbbb","cccc"]
Json字符串转换为List集合对象:
User [id=A001, userName=xl, userPwd=xl_123, age=24, price=12000.0, birthday=Tue Jan 13 13:41:35 CST 2015]
User [id=A002, userName=x2, userPwd=xl_123, age=24, price=13000.0, birthday=Tue Jan 13 13:41:35 CST 2015]
User [id=A003, userName=x3, userPwd=xl_123, age=24, price=14000.0, birthday=Tue Jan 13 13:41:35 CST 2015]
Json字符串转换为List集合字符串:[aaaa, bbbb, cccc]

 

 

 

分享到:
评论

相关推荐

    非常详细的gson使用方法

    在Android开发中,Gson库是Google提供的一款强大的JSON处理工具,它允许我们将Java对象转换为对应的JSON字符串,同时也能够将JSON数据解析成相应的Java对象。这篇详细的文章将深入探讨如何利用Gson进行高效的JSON...

    Gson基本使用方法

    在使用Gson之前,你需要有一个Java对象来映射JSON数据。例如,我们创建一个简单的`Person`类: ```java public class Person { private String name; private int age; // getters and setters } ``` 3. ...

    Android Gson使用Demo

    在Android开发中,Gson库是一个非常常用的工具,它由Google提供,用于在Java对象和JSON数据之间进行互相转换。Gson使得我们可以轻松地将Java对象序列化为JSON字符串,或者将JSON字符串反序列化为Java对象。在这个...

    Android Gson使用实例Demo

    在Android开发中,数据交换和存储常常涉及到JSON格式的数据,Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。这个"Android Gson使用实例Demo"旨在帮助开发者理解如何在Android应用中...

    maven项目中gson使用方法.pdf

    Gson库是Google提供的一个用于在Java对象和JSON数据之间进行映射的Java库,它极大地简化了JSON的处理。本篇将详细介绍在Maven项目中如何使用Gson库。 首先,要在Maven项目中引入Gson库,我们需要在项目的`pom.xml`...

    gson 使用Gson将Java对象转换为JSON

    Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...

    om.google.gson.Gson Gson maven依赖

    Gson是Google开发的一款Java语言编写的库,用于在Java对象和JSON数据之间进行映射。这个库使得Java对象可以轻松地序列化成JSON格式,同时也可以从JSON字符串反序列化回Java对象。在Java开发中,Gson库非常常见,特别...

    使用gson解析json

    Gson是Google提供的一款强大的库,它允许我们将Java对象转换为对应的JSON字符串,反之亦然。本篇文章将深入探讨如何使用Gson库解析JSON。 一、Gson简介 Gson是Google提供的一个开源项目,它能够将Java对象转换成...

    Gson简要使用笔记

    Gson 是 Google 推出的一款 Java 语言编写的 JSON 库,它允许开发者将 Java 对象转换成 JSON 格式的字符串,反之亦然。Gson 库的强大之处在于其灵活性和简洁性,使得 JSON 序列化和反序列化变得更加简单。 首先,让...

    GSON JAR包 最新包和历史包 gson-2.10.1

    介绍:Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. 压缩包里有以下文件: ...

    gson jar包下载

    **一、Gson的使用** 1. **序列化(对象转JSON)** 使用`Gson`类的`toJson()`方法,可以将Java对象转换为JSON字符串。例如,如果有一个`Person`类,你可以这样做: ```java Gson gson = new Gson(); Person ...

    com.google.gson.Gson 2.8.1 2.8.2 jar包 gson

    Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称是Google Gson,主要用于将Java对象转换为JSON格式的字符串,也可以将JSON字符串反序列化为对应的Java对象。在Java开发中,...

    Android Studio下使用Google Gson解析Json数据示例

    总的来说,Google Gson库在Android Studio中为开发者提供了一个强大且易于使用的工具,用于处理JSON数据。它能够有效地将JSON字符串转化为Java对象,以及将Java对象序列化为JSON字符串,极大地简化了数据操作的工作...

    Gson的三个jar包

    假设你有一个JSON字符串,你可以使用`Gson().fromJson(json, User.class)`将JSON转换为User类的实例。如果JSON数据与Java类结构匹配,Gson会自动填充对象的字段。 3. **类型适配器(TypeAdapter)**:Gson允许...

    gson-2.8.6-API文档-中文版.zip

    赠送jar包:gson-2.8.6.jar; 赠送原API文档:gson-2.8.6-javadoc.jar; 赠送源代码:gson-2.8.6-sources.jar; 赠送Maven依赖信息文件:gson-2.8.6.pom; 包含翻译后的API文档:gson-2.8.6-javadoc-API文档-中文...

    Android中gson使用登陆注册功能

    在Android应用开发中,Gson库是一个非常常用的数据序列化和反序列化工具,由Google提供,主要用于将Java对象转换为JSON格式的字符串,以及将JSON字符串转换回对应的Java对象。在登录注册功能中,Gson扮演着至关重要...

    Eclipse下使用Google Gson解析Json数据示例+Android Studio下使用Google Gson解析Json数据示例

    在IT行业中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在开发Java应用程序时,我们常常需要将JSON字符串转换为Java对象,或者将Java...

    使用gson解析数据

    在Java开发中,处理JSON数据是一项常见的任务,而Gson库是Google提供的一个强大的工具,它使得Java对象和JSON数据之间的转换变得极其便捷。本文将深入探讨如何使用Gson库来解析复杂的JSON数据。 首先,我们需要理解...

    Gson-2.8.1的官方jar包合集【gson-2.8.1.jar,gson-2.8.1-sources.jar】

    Gson是Google开发的一款强大的Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON数据解析回等效的Java对象。这个压缩包包含了Gson库的版本2.8.1,它提供了两个主要的组件:`gson-2.8.1.jar`和`gson-2.8.1-...

    gson-2.8.5版本的jar包

    GSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个JSON字符串...

Global site tag (gtag.js) - Google Analytics