JsonWriter使用
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"));
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();
?}
轉載于:https://www.cnblogs.com/bravestarrhu/p/3605623.html
總結
以上是生活随笔為你收集整理的JsonWriter使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: crawler_JVM_DNS_在爬虫中
- 下一篇: sharepoint部件webparth