六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 27|回复: 0

java对象转为json字符串

[复制链接]

升级  95.67%

151

主题

151

主题

151

主题

举人

Rank: 3Rank: 3

积分
487
 楼主| 发表于 2013-1-23 02:21:14 | 显示全部楼层 |阅读模式
<div style="padding: 5px 0pt;" class="bc0"><div class="f14 p90 pl10">就目前来看,Google的GSON组件不错。至少我在开发中来看,是目前最棒的,而且支持 JDK5 的泛型。地址:http://code.google.com/p/google-gson/User 用户类:public class User {@Exposeprivate Long id;@Exposeprivate 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<String, User> userMap = new HashMap<String, User>();        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<Map<String, User>>(){}.getType());        System.out.println(sUserMap);        // {"user1":{"id":1001,"name":"张三"},"user2":{"id":1002,"name":"李四"}}                // 将JSON字符串转换为 HashMap        Map<String, User> userMap2 = (Map<String, User>)gson.fromJson(sUser, new TypeToken<HashMap<String, User>>(){}.getType());        System.out.println(userMap2.get("user1").getName());        // 张三    }}当然 GSON的JSON解析设置还不止这些,还有版本的注解、更改字段名称的注解等等。上面给的网址上有具体的开发文档,和详细的例子。如今 GSON 已被很多公司所采用,方便快捷。Google就是比较强大。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表