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

java对象转为json字符串

    博客分类:
  • JSON
阅读更多
就目前来看,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<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就是比较强大。 
  1

回答者: fcrpg2002 - 四级    2009-8-2 14:11

提问者对于答案的评价:
十分感谢!

<script type="text/javascript">(function(){var t=(new Date()).getTime();var stop=false;var post_data=&quot;ct=19&amp;tn=ikasyndatajson&amp;cm=100003&amp;at=10002&amp;qid=109528305&amp;bid=1614601&amp;bun=&quot;+encodeURIComponent(&quot;fcrpg2002&quot;)+&quot;&amp;t=&quot;+t;var msg=[&quot;评价成功!&quot;,&quot;您已评价!&quot;];var pj=Fe.G(&quot;pingjia&quot;);var link=pj.getElementsByTagName(&quot;div&quot;)[0];link.title=&quot;回答很有帮助,谢谢!&quot;;Fe.on(link,&quot;mouseout&quot;,hideTip);function hideTip(){setTimeout(function(){var span=Fe.G(&quot;pingjia&quot;).getElementsByTagName(&quot;span&quot;);if(span.length!=1){span[1].parentNode.removeChild(span[1])}},2000)}Fe.on(link,&quot;mouseout&quot;,function(){this.className=&quot;pj_div&quot;});Fe.on(link,&quot;mouseup&quot;,function(){this.className=&quot;pj_div pj_divhover&quot;});Fe.on(link,&quot;mousedown&quot;,function(){this.className=&quot;pj_div pj_divhover pj_divaction&quot;});Fe.on(link,&quot;mouseover&quot;,function(){this.className=&quot;pj_div pj_divhover&quot;});Fe.on(link,&quot;click&quot;,action);function action(){var span=pj.getElementsByTagName(&quot;span&quot;);span=(span.length==1)?document.createElement(&quot;span&quot;):span[1];if(stop){span.style.color=&quot;#dd7368&quot;;span.innerHTML=msg[1];span.className=&quot;pj_tip&quot;;pj.appendChild(span);return false}Fe.Ajax.post(&quot;/q?ct=19&amp;tn=ikasyndatajson&quot;,post_data,function(xhr){var b=pj.getElementsByTagName(&quot;b&quot;)[0];if(!!eval(xhr.responseText)){b.innerHTML=parseInt(b.innerHTML)+1;span.innerHTML=msg[0]}else{span.innerHTML=msg[1]}span.style.color=&quot;#dd7368&quot;;span.className=&quot;pj_tip&quot;;pj.appendChild(span)});stop=true;setTimeout(function(){stop=false},10000)}})();</script>

.goodvalueitem{ background:url(http://img.baidu.com/img/iknow/ico_good.gif) no-repeat left; padding:2px 0 0 20px; zoom:1; } .relateTable td { line-height:22px; }
相关内容
 
 
 
 
 
   
 
<script> var e=G(&quot;qbRelateTableBody&quot;); if(e){ var links=e.getElementsByTagName(&quot;a&quot;); for(var l=links.length,i=0;i&lt;l;i++){ var a=links[i]; a.href=a.href+&quot;&amp;fr2=query&quot;; } } </script>
其他回答    4
只是要求转化成字符串的话,可以试试..重写toString方法
如:
@Override
public String toString(){
 return "{id:"+this.id+","name='"+this.name+"'"};
} 

回答者: liushebiao - 六级    2009-8-1 18:56

这很简单拉 这种小框架可以自己些嘛. 

回答者: 雪中霖雨 - 四级    2009-8-1 21:29

导个json.lib包就可以了呗。也可以自己写。不过,有现成的包。直接用。 

回答者: coffeezhu007 - 二级    2009-8-1 21:30

分享到:
评论

相关推荐

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    将Java对象转换为JSON字符串通常在准备发送数据到服务器或保存数据时进行。例如,如果我们有一个`Person`对象,我们可以这样将其转换为JSON: ```java Person myPerson = new Person(); myPerson.setName("李四"); ...

    将string类型xml字符串转为json字符串

    总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串并构建相应的JSON对象来完成的。这个过程通常需要借助特定的库,如Java中的`org.json`。理解XML和JSON的结构差异,以及如何利用这些库进行...

    java转json串的几种方法

    如果你有一个JSON格式的字符串,想解析成Java对象,可以使用`JSON.parseObject(jsonStr, YourClass.class)`。例如,如果你有一个如下的JSON字符串: ```json {"name":"张三","age":30} ``` 可以这样处理: ```...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串之间转换的功能。这篇博客文章"net.sf.json.JSONObject实现Object对象与Json字符串的互转"深入探讨了如何使用`JSONObject`来处理这种转换...

    Java对象与Json之间的互相转换的jar包

    Fastjson的使用也非常直观,`JSON.toJSONString(obj)`可将Java对象转为JSON字符串,`JSON.parseObject(jsonStr, YourClass.class)`则完成反序列化。 这些库不仅支持基本类型和普通对象的转换,还支持集合、Map以及...

    对象转为json格式所需要的所有的jar

    标题中提到的“对象转为json格式所需要的所有的jar”,主要指的是Java中用于处理JSON转换的库的jar文件。其中,最常用的两个库是Jackson和Gson。 1. **Jackson库**: Jackson是Java中最流行的JSON处理库之一,由 ...

    JAVA-JSON工具转换类

    在处理JSON时,可能需要将JSON解析得到的数据转换成特定的对象类型,或者将Java对象转换成适合JSON格式的数据,这时候`ezmorph`就可以派上用场。它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成...

    JSON 字符串 与 java 对象的转换

    // 把Java对象列表转换为JSON对象数组,并转为字符串 JSONArray array = JSONArray.fromObject(userList); String jsonString = array.toString(); ``` #### 2. Java对象转换成JSON对象 ```java import ...

    jackson 对象json字符串数组集合互转

    在标题“Jackson对象json字符串数组集合互转”中,提到的核心概念是Jackson如何处理JSON字符串与Java集合(如List、Array等)之间的转换。下面将详细解释这一过程以及涉及的相关知识点。 1. JSON与Java对象映射: ...

    json串解析

    // 将Java对象转为JSON字符串 String jsonString = mapper.writeValueAsString(obj); ``` 2. Gson库: Gson是Google提供的一个开源库,它也提供了将Java对象转换为JSON字符串,以及将JSON字符串转换回Java对象...

    js中的json对象和字符串之间的转化

    2. **字符串与JSON对象之间的转化**:JavaScript提供了两个内置函数来实现这种转化:`JSON.stringify()`用于将JavaScript对象转换为JSON字符串,`JSON.parse()`用于将JSON字符串转换回JavaScript对象。 **描述中的...

    使用jackson完成json与java对象的互相转换实例

    要将一个Java对象转换为JSON字符串,我们可以使用`ObjectMapper`的`writeValueAsString()`方法。假设我们有一个简单的User类: ```java public class User { private String name; private int age; // getters...

    json转对象(java 多级嵌套)

    在实际开发中,需要考虑可能出现的异常,如JSON格式错误或无法映射到Java对象。可以通过try-catch语句捕获`JsonProcessingException`等异常并进行处理。 7. **自定义转换规则** Jackson提供丰富的配置选项,允许...

    gson解析泛型和将泛型转为json字符串

    这将把整个Map转换成一个JSON格式的字符串。 3. **自定义泛型类的序列化和反序列化** 如果你的泛型类有特殊的需求,如忽略某些字段或者自定义字段的序列化行为,你可以创建一个`GsonBuilder`并添加相应的配置,...

    【android开发】实体类和JSON字符串之间相互转化

    Gson库是Google提供的一个Java库,它能将Java对象转换为JSON字符串,反之亦然。本篇将深入探讨如何使用Gson进行这种转化。 首先,确保在项目中引入了Gson库。在Android Studio的build.gradle(Module: app)文件中...

    Json字符串转Java对象和List代码实例

    当接收到JSON格式的字符串时,我们通常需要将其转换为Java对象以便进一步处理。同样,我们可能也需要将Java对象转换为JSON字符串以便发送给服务器。本篇文章将详细介绍如何在Java中实现JSON字符串与Java对象以及List...

    Android list转json工具类

    Gson是Google开发的一个用于在Java对象和JSON数据之间进行映射的Java库,它可以将任何Java对象转换为JSON字符串,反之亦然。以下是使用Gson进行List到JSON转换的基本步骤: 1. 引入Gson库:在build.gradle文件中...

    json字符串转成 Map/List

    Gson是由Google提供的一个Java库,能够将Java对象转换为JSON字符串,反之亦然。将JSON字符串转化为Map,可以使用`fromJson()`方法: ```java import com.google.gson.Gson; import java.util.Map; String ...

    用于将对象转为字符串、将字符串转为对象的gson

    Gson是Google开发的一款Java库,它主要用于在Java对象和JSON数据之间进行映射,使得Java对象能够被转换成JSON格式的字符串,同时也能够将JSON字符串解析为等效的Java对象。这个库在JavaEE环境中非常有用,因为它简化...

    form数据与json对象的互相转换(完整版)

    1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传给服务器,从而可以实现无刷新的form提交。; 2、通过AJAX从服务器得到json格式的数据,然后使用本工具解析数据填入form。从而可以实现无刷新的...

Global site tag (gtag.js) - Google Analytics