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字符串的更多相关文章

  1. Android用Gson解析JSON字符串

    在volley框架中有一个 protected Response<Result<T>> parseNetworkResponse(NetworkResponse respons ...

  2. Android开发中的Json字符串与复杂的嵌套对象互转。

    Gson 可能是大家都觉得比较简单吧.我发现用JSONObject和网上下载的JSONHelper类使用起来很无语,只能解析简单的单层对象,如果有嵌套的就不能直转转成可用对象了.所以网上找了一会儿,发 ...

  3. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  4. 【Android进阶】Gson解析json字符串的简单应用

    在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是xml,一种是json.这两种数据交换形式各有千秋,比如使用json数据格式,数据量会比较小,传输速度快,放便解析,而采用xml数据格式, ...

  5. 一个可以将 json 字符串 直接绑定到 view 上的Android库

    android-data-binding 这是一个可以将 json 字符串 直接绑定到 view 上的库, 不用先将 json 转换为 model 类. 传送门(https://github.com/ ...

  6. android http post 请求与 json字符串

    一.目标 android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈. 1. 客户端发送的json格式为: {"data" : "valu ...

  7. android跟服务器使用json传递数据

    最近在做项目,使用了json传递数据,把服务器对象转换成json字符串返回,android使用gson包解析json字符串变成对象. 1.服务器代码编写,我这边是在servlet里面 Peron pe ...

  8. 前端页面使用 Json对象与Json字符串之间的互相转换

    前言 在前端页面很多时候都会用到Json这种格式的数据,最近没有前端,后端的我也要什么都要搞,对于Json对象与Json字符串之间的转换终于摸清楚了几种方式,归纳如下! 一:Json对象转换为json ...

  9. fastjson将json字符串转化成bean对象解析出错的检查方法

    我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败.如: { "response": { "resultcode": "0", &qu ...

随机推荐

  1. iOS开发-UI基础Demo

    现在更多的学习资料都是xCode4.X的,发现xCode6.1还是很多东西,如果有正在学习iOS开发的可以通过Demo简单了解下iOS的UI开发~ 1.新建单视图文件: 2.新建项目名称,语言选择OC ...

  2. 【右滑返回】滑动冲突 Scroller DecorView

    基本思想 我们的滑动逻辑主要是利用View的scrollBy() 方法, scrollTo()方法和Scroller类来实现的 当手指拖动视图的时候,我们监听手指在屏幕上滑动的距离 利用View的sc ...

  3. Jquery 获取第一个子元素

    <ul>  <li>John</li>  <li>Karl</li>  <li>Brandon</li></u ...

  4. Windows10下安装pytorch并导入pycharm

    1.安装Anaconda 下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 安装Anaconda3,最新版本的就可以了,我安装的是5. ...

  5. .NET/Mysql-petatoco连接mysql数据库

    安装mysql数据库 用nugget添加.net连接mysql数据库的组件

  6. 【nodejs】修改了下对股票表进行crud操作的代码

    表是这样的: id是自增长字段,code和name都是255位的varchar. 下面是主角app.js的代码: 'use strict'; var express=require('express' ...

  7. ZH奶酪:Ubuntu启动/重启/停止apache服务

    Start Apache 2 Server /启动apache服务 # /etc/init.d/apache2 start or $ sudo /etc/init.d/apache2 start Re ...

  8. PHP表单-PHP $_POST 变量

    PHP $_POST 变量 在 PHP 中,预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值. $_POST 变量 预定义的 $_POST 变量用 ...

  9. 服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。

    1:关闭MySQL服务的时候出现“服务名无效.请键入 NET HELPMSG 2185 以获得更多的帮助.”错误. 2:查看服务名称 3:重新关闭服务 4:管理员运行控制台后重新执行 成功停掉了.

  10. maven的下载以及安装

    1.下载Maven 打开链接:https://maven.apache.org/download.cgi 下载好之后解压到一个盘,我的是解压到F:\Maven\apache-maven-3.5.3-b ...