首页 > 移动平台 > 详细

android使用JsonWriter拼json字符串

时间:2014-03-30 15:51:33      阅读:579      评论:0      收藏:0      [点我收藏+]

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字符串,布布扣,bubuko.com

android使用JsonWriter拼json字符串

原文:http://www.cnblogs.com/xgjblog/p/3633568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!