Example:

拼一个如下的json格式String

{
    [
        {
            "id": 912345678901,
            "text": "How do I write JSON on Android?",
            "geo": null,
            "user": {
                "name": "android_newb",
                "followers_count": 41
            }
        },
        {
            "id": 912345678902,
            "text": "@android_newb just use android.util.JsonWriter!",
            "geo": [
                50.454722,
                -104.606667
            ],
            "user": {
                "name": "jesse",
                "followers_count": 2
            }
        }
    ]
}

关键代码:

 public static String writeJsonStream(List<Message> messages)throwsIOException{

  if(messages!=null && messages.size() > 0){

    ByteArrayOutputStream out = new ByteArrayOutputStream();
           JsonWriter writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8"));

    writer.setIndent("");
    writeMessagesArray(writer, messages);
      writer.close();
    byte[] bytes = out.toByteArray();
       return new String(bytes);

  }
     return null;

}

private static void writeMessagesArray(JsonWriter writer,List messages)throwsIOException{
     writer.beginArray();
     for(Message message : messages){
       writeMessage(writer, message);
     }
     writer.endArray();

}

private static void writeMessage(JsonWriter writer,Message message)throwsIOException{
     writer.beginObject();
     writer.name("id").value(message.getId());
     writer.name("text").value(message.getText());
     if(message.getGeo()!=null){
       writer.name("geo");
       writeDoublesArray(writer, message.getGeo());
     }else{
       writer.name("geo").nullValue();
     }
     writer.name("user");
     writeUser(writer, message.getUser());
     writer.endObject();
} private static void writeUser(JsonWriter writer,User user)throwsIOException{
     writer.beginObject();
     writer.name("name").value(user.getName());
     writer.name("followers_count").value(user.getFollowersCount());
     writer.endObject();
}  private static void writeDoublesArray(JsonWriter writer,List doubles)throwsIOException{
     writer.beginArray();
     for(Double value : doubles){
       writer.value(value);
     }
     writer.endArray();
 }

JsonWriter使用的更多相关文章

  1. struts2 java.lang.StackOverflowError org.apache.struts2.json.JSONWriter

    1. 问题描述: 页面通过异步访问action,    action的方法通过map封装数据,struts的result的type设置为json,后台报错 六月 25, 2016 6:54:33 下午 ...

  2. Class org.apache.struts2.json.JSONWriter can not access a member of class org.springframework.aop.TruePointcut with modifiers "public"

    Spring注入Action使用Json错误:org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: ...

  3. org.apache.struts2.json.JSONWriter can not access a member of class

    偶遇一个问题:org.apache.struts2.json.JSONWriter can not access a member of class org.apache.tomcat.dbcp.db ...

  4. Newtonsoft.Json序列化和反序列之javascriptConvert.SerializeObject,DeserializeObject,JsonWriter,JsonReader

    这里下载:http://www.newtonsoft.com/products/json/安装:   1.解压下载文件,得到Newtonsoft.Json.dll   2.在项目中添加引用.. jav ...

  5. Newtonsoft.Json.JsonWriter

    [一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/4754769.html]  JsonWriter使用: 前台 $.post("Ajax ...

  6. Class org.apache.struts2.json.JSONWriter can not access a member of

    异常形式: Class org.apache.struts2.json.JSONWriter can not access a member of * 或是 Class com.googlecode. ...

  7. Android读写JSON格式的数据之JsonWriter和JsonReader

    近期的好几个月都没有搞Android编程了,逐渐的都忘却了一些东西.近期打算找一份Android的工作,要继续拾起曾经的东西.公司月初搬家之后就一直没有网络,直到今日公司才有网络接入,各部门才開始办公 ...

  8. Class org.apache.struts2.json.JSONWriter can not access a member of class oracle.jdbc.driver.Physica

    产生这个错误的原因是因为我的oracle数据库中有一个CLOB字段,查询出来的时候要转换为JSON而报错. Class org.apache.struts2.json.JSONWriter can n ...

  9. android使用JsonWriter拼json字符串

    JsonWriter使用 Example: 拼一个如下的json格式String {    [        {            "id": 912345678901,    ...

随机推荐

  1. LR12.53—第3课:重播Vuser脚本

    第3课:重播Vuser脚本 在前面的教训,你记录了一组典型的用户行为,并准备重播脚本. 重播脚本之前,您可以配置脚本的运行时设置,它定义了Vuser的行为. 注:记录与基于Web的协议的地方WebTo ...

  2. 【转】Java集合类

    http://blog.csdn.net/zhangerqing/article/details/8122075 http://android.blog.51cto.com/268543/400557 ...

  3. 使用二分法查找mobile文件中区号归属地

    #!/usr/bin/env python #coding:utf-8 ''' Created on 2015年12月8日 @author: DL @Description: 使用二分法查找mobil ...

  4. javascript date picker

    一个简洁的date picker <html><head><meta http-equiv="Content-Type" content=" ...

  5. mysql在Linux下

    Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root               ?        :: /bin/sh /usr/ ...

  6. css 去除点击之后的虚线

    链接在被点击时会出现虚线框,即使松开了也仍然存在,在有的时候显得不美观.既然不好看,那就不要它.怎样去掉呢? 方法一 IE下可使用其私有的html属性:hideFoucs,在标签的结构中加入hidef ...

  7. kafka生产消息的速度跟什么有关?

    kafka的吞吐量很大,在保证带宽的情况下,网上的一些测试表明3台broker,没有replication,6个partition的情况下,一般的写入速度可以达到300MB/s.参考:kakfa测试 ...

  8. WAMPP安装后mysql无法启动

    上午 10:23:42 [mysql] This may be due to a blocked port, missing dependencies, 上午 10:23:42 [mysql] imp ...

  9. Eclipse取消设置项目默认空间

    分享一个小经验:       如果,在启动Eclipse时选中了Use this as the default and do not ask again 下次要启动时不会再次显示修改工作空间的选择, ...

  10. 向python文件传递参数

    1. 向python传递单个参数: import sys print sys.argv[0]  ##脚本名 print sys.argv[1]  ## 第一个参数 2. 向python传递数组: pr ...