gson 转换json数据利器

15 篇文章 0 订阅
gson 数据转换json


package com.data.vo;

import com.google.gson.annotations.Expose;

public class GsonUser {
@Expose
private Integer gson_id;
private String gson_name;
public Integer getGson_id() {
return gson_id;
}

public void setGson_id(Integer gson_id) {
this.gson_id = gson_id;
}
public String getGson_name() {
return gson_name;
}
public void setGson_name(String gson_name) {
this.gson_name = gson_name;
}

public GsonUser(Integer gson_id, String gson_name) {
super();
this.gson_id = gson_id;
this.gson_name = gson_name;
}

public GsonUser() {
super();
}
}



package com.data.test;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

import com.data.vo.GsonUser;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;


public class Commontest {

private Gson gson = null;

private GsonBuilder gsonBuilder = null;
String gsonToString = null;
GsonUser gsonUser1 = new GsonUser(1,"美女");
GsonUser gsonUser2 = new GsonUser(2,"帅哥");
@Before
public void setup(){
gson = new Gson();
gsonBuilder = new GsonBuilder();
}

//@Test bean
public void testGson(){
GsonUser gsonUser = new GsonUser();
gsonUser.setGson_id(1);
gsonUser.setGson_name("美女");
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
//builder.excludeFieldsWithoutExposeAnnotation();
Gson gson =builder.create();
String user = gson.toJson(gsonUser);
System.out.println(user);//{"gson_id":1,"gson_name":"美女"}
// 将JSON字符串转换为 JavaBean
GsonUser user2 = gson.fromJson(user, GsonUser.class);
System.out.println(user2.getGson_id()+","+user2.getGson_name());
}

//@Test
public void testList(){//list
List<Object> list = new ArrayList<Object>();

list.add(gsonUser1);list.add(gsonUser2);
gsonToString= gson.toJson(list);
//System.out.println(gsonToString);
//TypeToken 通过反射 type import java.lang.reflect.Type; 将泛型对象类型转成我们所需要的对象类型 //import com.google.common.reflect.TypeToken;
Type type = new TypeToken<List<GsonUser>>() {}.getType();//list 对象必须指定一个实体类。
List<GsonUser> list1 = gson.fromJson(gsonToString.toString(), type);
for (int i = 0; i < list1.size(); i++) {
GsonUser gs = (GsonUser) list1.get(i);
System.out.println(gs.getGson_id()+","+gs.getGson_name());
}

}

@Test
public void testMap(){//map
Map<String, GsonUser> userMap = new HashMap<String, GsonUser>();
userMap.put("gs", gsonUser1);userMap.put("ps1", gsonUser2);
String gsonToString =gson.toJson(userMap);
System.out.println(gsonToString);
Type type = new TypeToken<Map<String,GsonUser>>() {}.getType();
Map<String, GsonUser> map = gson.fromJson(gsonToString, type);
GsonUser u = map.get("gs");
System.out.println(u.getGson_id()+","+u.getGson_name());
}
}



另外还有阿里巴巴的fastjson也不错

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

这里就不联系demo了
[url]http://blog.csdn.net/wilsonke/article/details/37921571[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值