android使用JsonWriter拼json字符串
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();
 }
android使用JsonWriter拼json字符串的更多相关文章
- Android用Gson解析JSON字符串
		在volley框架中有一个 protected Response<Result<T>> parseNetworkResponse(NetworkResponse respons ... 
- Android开发中的Json字符串与复杂的嵌套对象互转。
		Gson 可能是大家都觉得比较简单吧.我发现用JSONObject和网上下载的JSONHelper类使用起来很无语,只能解析简单的单层对象,如果有嵌套的就不能直转转成可用对象了.所以网上找了一会儿,发 ... 
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
		前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ... 
- 【Android进阶】Gson解析json字符串的简单应用
		在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是xml,一种是json.这两种数据交换形式各有千秋,比如使用json数据格式,数据量会比较小,传输速度快,放便解析,而采用xml数据格式, ... 
- 一个可以将 json 字符串 直接绑定到 view 上的Android库
		android-data-binding 这是一个可以将 json 字符串 直接绑定到 view 上的库, 不用先将 json 转换为 model 类. 传送门(https://github.com/ ... 
- android http post 请求与  json字符串
		一.目标 android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈. 1. 客户端发送的json格式为: {"data" : "valu ... 
- android跟服务器使用json传递数据
		最近在做项目,使用了json传递数据,把服务器对象转换成json字符串返回,android使用gson包解析json字符串变成对象. 1.服务器代码编写,我这边是在servlet里面 Peron pe ... 
- 前端页面使用 Json对象与Json字符串之间的互相转换
		前言 在前端页面很多时候都会用到Json这种格式的数据,最近没有前端,后端的我也要什么都要搞,对于Json对象与Json字符串之间的转换终于摸清楚了几种方式,归纳如下! 一:Json对象转换为json ... 
- fastjson将json字符串转化成bean对象解析出错的检查方法
		我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败.如: { "response": { "resultcode": "0", &qu ... 
随机推荐
- mysql命令用法复习笔记
			show DATABASES ; create database nulige character set utf8; use nulige; show tables; #创建表 CREATE TAB ... 
- MySql的入侵测试以及防范
			在做了之前的SQL SERVER之后,便很想尝试一下MYSQL的入侵测试已经防范,与大家一起分享. 总的来说,我一直在用的是MYSQL,对MYSQL比较熟悉,相比较而言,感觉MYSQL更安全,这只是我 ... 
- ListView GridViewColumn.CellTemplate
			<ListView.View> <GridView> <GridViewColumn Header="Meaningful Use Objectives&quo ... 
- @SuppressLint("NewApi")和@TargetApi()的区别
			在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告, 解决方法是在方法上加上@Suppr ... 
- Java8新特性 - Lambda表达式 - 基本知识
			A lambda expression is an unnamed block of code (or an unnamed function) with a list of formal param ... 
- Android 之 AndroidManifest.xml 详解(二)
			[10]<activity> Activity活动组件(即界面控制器组件)的声明标签,Android应用中的每一个Activity都必须在AndroidManifest.xml配置文件中声 ... 
- Subversion快速入门教程
			如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配 ... 
- git多仓库管理
			使用git建立多仓库管理 以下操作为命令行下操作 一:先创建服务器端口,总仓库和子仓库: ssh git@192.168.1.110 连接git服务器 输入密码 mkdir iOSPro ... 
- loadrunner运行乱码解决方法
			最近进行项目压力测试,选择用loadrunner来进行测试,当在回放时间,脚本中的中文由乱码.快照,经研究,经过一下3步可以解决,分享一下 第一步:当在进行新建脚本时间,选择选项中-〉高级-〉选择“支 ... 
- inode备忘
			文件名 -> inode -> device block 转自:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html 一 ... 
