google-json

http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

Gson源于google

Gson这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。

 


 
Gson目标
1、提供简单的toJson()和fromJson()方法的java对象转换为JSON,反之亦然
2、允许预先存在不可改变的对象被转换为和从JSON
3、广泛支持的java泛型
4、允许自定义对象的意见
5、支持任意复杂的对象(深层次结果和继承泛型类型的广泛使用)

一、声明要进行json输入/输出的对象
写道
package com.zhl.gson;


import com.google.gson.annotations.Expose;


public class User {
@Expose
private Long id;
@Expose
private String name;
@Expose
private User next;


public Long getId() {
return id;
}


public void setId(Long id) {
this.id = id;
}


public String getName() {
return name;
}


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


public User getNext() {
return next;
}


public void setNext(User next) {
this.next = next;
}
}
 
二、关于对象转换为json、或者json转换为对象
写道
package com.zhl.gson;


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;


public class Test {


public static void main(String[] args) {
User user = new User();
user.setId(1001L);
user.setName("zhenlging");
User next = new User();
next.setId(1002L);
next.setName("yangyang");
user.setNext(next);
GsonBuilder builder = new GsonBuilder();


//不转换没有@Expose注解的字段
@Expose这并不是java标准的注解,而是谷歌GSON的注解,表示它所注解的字段不支持序列化。

builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
//将对象转换为JSON字符串
String sUserString = gson.toJson(user);
System.out.println(sUserString);
User user2 = gson.fromJson(sUserString, User.class);
System.out.println("USER_ID: " + user2.getId() + " USER_NAME:" + user2.getNext().getName());
}
}
 
三、集合转换为json或者json转换为集合
Java代码   
  1. package com.zhl.gson;   
  2.   
  3. import java.util.HashMap;   
  4. import java.util.Map;   
  5.   
  6. import com.google.gson.Gson;   
  7. import com.google.gson.GsonBuilder;   
  8. import com.google.gson.reflect.TypeToken;   
  9.   
  10. public class MapTest {   
  11.   public static void main(String[] args) {   
  12.        
  13.       User user1 new User();   
  14.       user1.setId(1001L);   
  15.       user1.setName("zhengling");   
  16.       User user2 new User();   
  17.       user2.setId(1002L);   
  18.       user2.setName("yangyang");   
  19.       Map<String, User> userMap new HashMap<String,User>();   
  20.       userMap.put("user1", user1);   
  21.       userMap.put("user2", user2);   
  22.          
  23.       GsonBuilder builder new GsonBuilder();   
  24.       Gson gson builder.create();   
  25.       String sUserMap gson.toJson(userMap, new TypeToken<Map<String,User>>(){}.getType());   
  26.       System.out.println(sUserMap);   
  27.          
  28.       //创建Type,Type属于java.lang.reflect.Type   
  29.       //Type type new TypeToken<Map<String, User>>(){}.getType();   
  30.         
  31.       Map<String,User> userMap2 gson.fromJson(sUserMap, new TypeToken<Map<String, User>>() {}.getType());   
  32.       System.out.println(userMap2.get("user1").getName());   
  33. }   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包含以下java源文件: com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class com.google.gson.FieldAttributes.class com.google.gson.FieldNamingPolicy.class com.google.gson.FieldNamingStrategy.class com.google.gson.Gson.class com.google.gson.GsonBuilder.class com.google.gson.InstanceCreator.class com.google.gson.JsonArray.class com.google.gson.JsonDeserializationContext.class com.google.gson.JsonDeserializer.class com.google.gson.JsonElement.class com.google.gson.JsonIOException.class com.google.gson.JsonNull.class com.google.gson.JsonObject.class com.google.gson.JsonParseException.class com.google.gson.JsonParser.class com.google.gson.JsonPrimitive.class com.google.gson.JsonSerializationContext.class com.google.gson.JsonSerializer.class com.google.gson.JsonStreamParser.class com.google.gson.JsonSyntaxException.class com.google.gson.LongSerializationPolicy.class com.google.gson.TreeTypeAdapter.class com.google.gson.TypeAdapter.class com.google.gson.TypeAdapterFactory.class com.google.gson.annotations.Expose.class com.google.gson.annotations.SerializedName.class com.google.gson.annotations.Since.class com.google.gson.annotations.Until.class com.google.gson.internal.ConstructorConstructor.class com.google.gson.internal.Excluder.class com.google.gson.internal.JsonReaderInternalAccess.class com.google.gson.internal.LazilyParsedNumber.class com.google.gson.internal.LinkedTreeMap.class com.google.gson.internal.ObjectConstructor.class com.google.gson.internal.Primitives.class com.google.gson.internal.Streams.class com.google.gson.internal.UnsafeAllocator.class com.google.gson.internal.bind.ArrayTypeAdapter.class com.google.gson.internal.bind.CollectionTypeAdapterFactory.class com.google.gson.internal.bind.DateTypeAdapter.class com.google.gson.internal.bind.JsonTreeReader.class com.google.gson.internal.bind.JsonTreeWriter.class com.google.gson.internal.bind.MapTypeAdapterFactory.class com.google.gson.internal.bind.ObjectTypeAdapter.class com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.class com.google.gson.internal.bind.SqlDateTypeAdapter.class com.google.gson.internal.bind.TimeTypeAdapter.class com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.class com.google.gson.internal.bind.TypeAdapters.class com.google.gson.reflect.TypeToken.class com.google.gson.stream.JsonReader.class com.google.gson.stream.JsonScope.class com.google.gson.stream.JsonToken.class com.google.gson.stream.JsonWriter.class com.google.gson.stream.MalformedJsonException.class

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值