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 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 staticvoidwriteMessagesArray(JsonWriterwriter,Listmessages)throwsIOException{writer.beginArray();for(Messagemessage:messages){writeMessage(writer,message);}writer.endArray();

}

private staticvoidwriteMessage(JsonWriterwriter,Messagemessage)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 staticvoidwriteUser(JsonWriterwriter,Useruser)throwsIOException{writer.beginObject();writer.name("name").value(user.getName());writer.name("followers_count").value(user.getFollowersCount());writer.endObject();}private staticvoidwriteDoublesArray(JsonWriterwriter,Listdoubles)throwsIOException{writer.beginArray();for(Doublevalue:doubles){writer.value(value);}writer.endArray();}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐