谷歌的json工具,简单实用

比如一个User对象,我想要一个框架可以直接转换成{id:1001,name='张三'} 就目前来看,Google的GSON组件不错,而且支持 JDK5 的泛型。 
地址:http://code.google.com/p/google-gson/ 

User 用户类: 
public class User { 
@Expose 
private Long id; 
@Expose 
private String name; 

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; 



// 测试 JavaBean 的转换 
public class Test { 
    public static void main(String[] args) { 
        User user = new User(); 
        user.setId(1001L); 
        user.setName("张三"); 
        GsonBuilder builder = new GsonBuilder(); 
        // 不转换没有 @Expose 注解的字段 
        builder.excludeFieldsWithoutExposeAnnotation(); 
        Gson gson = builder.create(); 
        
        String sUser = gson.toJson(user); 
        System.out.println(sUser); 
        // {"id":1001,"name":"张三"} 
        
        // 将JSON字符串转换为 JavaBean 
        User user2 = gson.fromJson(sUser, User.class); 
        System.out.println(user2.getId() + ", " + user2.getName()); 
        // 1001, 张三 
    } 


// 测试 HashMap 的转换 
public class MapTest { 
    public static void main(String[] args) { 
        User user1 = new User(); 
        user1.setId(1001L); 
        user1.setName("张三"); 
        User user2 = new User(); 
        user2.setId(1002L); 
        user2.setName("李四"); 
        Map userMap = new HashMap(); 
        userMap.put("user1", user1); 
        userMap.put("user2", user2); 
        GsonBuilder builder = new GsonBuilder(); 
        // 不转换没有 @Expose 注解的字段 
        builder.excludeFieldsWithoutExposeAnnotation(); 
        Gson gson = builder.create(); 
        
        String sUserMap = gson.toJson(user, new TypeToken>(){}.getType()); 
        System.out.println(sUserMap); 
        // {"user1":{"id":1001,"name":"张三"},"user2":{"id":1002,"name":"李四"}} 
        
        // 将JSON字符串转换为 HashMap 
        Map userMap2 = (Map)gson.fromJson(sUser, new TypeToken>(){}.getType()); 
        System.out.println(userMap2.get("user1").getName()); 
        // 张三 
    } 


当然 GSON的JSON解析设置还不止这些,还有版本的注解、更改字段名称的注解等等。 
上面给的网址上有具体的开发文档,和详细的例子。 
如今 GSON 已被很多公司所采用,方便快捷。Google就是比较强大。</STRING,></STRING,></STRING,></STRING,></STRING,></STRING,>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值