diff --git a/src/com/martinadamek/jsonandroid/AndroidJson.java b/src/com/martinadamek/jsonandroid/AndroidJson.java index b3cd1e2..37bb106 100644 --- a/src/com/martinadamek/jsonandroid/AndroidJson.java +++ b/src/com/martinadamek/jsonandroid/AndroidJson.java @@ -1,11 +1,17 @@ package com.martinadamek.jsonandroid; +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + import org.json.JSONArray; import org.json.JSONObject; -import org.json.JSONTokener; - -import java.io.*; -import java.util.*; public class AndroidJson implements TestJson { @@ -18,21 +24,29 @@ public List parsePublicTimeline(InputStream inputStream) { List result = new ArrayList(); try { - String json = convertStreamToString(inputStream); + Map map; + JSONObject jsonObject; + JSONObject user; + Iterator iterator; + Iterator iterator2; + String key; + String key2; + + String json = convertStreamToString(inputStream); JSONArray jsonArray = new JSONArray(json); int length = jsonArray.length(); - + for (int i = 0; i < length; i++) { - Map map = new HashMap(); - JSONObject jsonObject = jsonArray.getJSONObject(i); - Iterator iterator = jsonObject.keys(); + map = new HashMap(); + jsonObject = jsonArray.getJSONObject(i); + iterator = jsonObject.keys(); while (iterator.hasNext()) { - String key = (String) iterator.next(); + key = (String) iterator.next(); if ("user".equals(key)) { - JSONObject user = jsonObject.getJSONObject(key); - Iterator iterator2 = user.keys(); + user = jsonObject.getJSONObject(key); + iterator2 = user.keys(); while (iterator2.hasNext()) { - String key2 = (String) iterator2.next(); + key2 = (String) iterator2.next(); map.put("user." + key2, user.get(key2)); } } else { diff --git a/src/com/martinadamek/jsonandroid/GsonJson.java b/src/com/martinadamek/jsonandroid/GsonJson.java index 3119ee6..936220f 100644 --- a/src/com/martinadamek/jsonandroid/GsonJson.java +++ b/src/com/martinadamek/jsonandroid/GsonJson.java @@ -1,8 +1,5 @@ package com.martinadamek.jsonandroid; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonToken; - import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -11,68 +8,73 @@ import java.util.List; import java.util.Map; -public class GsonJson implements TestJson { - - public String getName() { - return "Gson"; - } - - public List parsePublicTimeline(InputStream inputStream) { - - List result = new ArrayList(); - - try { - JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8")); - - reader.beginArray(); - while (reader.hasNext()) { - Map map = new HashMap(); - - reader.beginObject(); - while (reader.hasNext()) { - String name = reader.nextName(); - if ("user".equals(name)) { - reader.beginObject(); - while (reader.hasNext()) { - String name2 = reader.nextName(); - map.put("user." + name2, getValue(reader)); - } - reader.endObject(); - } else { - map.put(name, getValue(reader)); - } - } - - reader.endObject(); - - result.add(map); - } - reader.endArray(); - - - } catch (Exception e) { - e.printStackTrace(); - } - - return result; - } - - static Object getValue(JsonReader r) throws IOException { - Object value = null; - JsonToken token = r.peek(); +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonToken; - switch (token) { - case NULL: - r.nextNull(); - break; - case BOOLEAN: - value = r.nextBoolean(); - break; - default: - value = r.nextString(); - } +public class GsonJson implements TestJson { - return value; - } + public String getName() { + return "Gson"; + } + + public List parsePublicTimeline(InputStream inputStream) { + + List result = new ArrayList(); + + try { + Map map; + String name; + String name2; + + JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8")); + + reader.beginArray(); + + while (reader.hasNext()) { + map = new HashMap(); + reader.beginObject(); + + while (reader.hasNext()) { + name = reader.nextName(); + if ("user".equals(name)) { + reader.beginObject(); + while (reader.hasNext()) { + name2 = reader.nextName(); + map.put("user." + name2, getValue(reader)); + } + reader.endObject(); + } else { + map.put(name, getValue(reader)); + } + } + + reader.endObject(); + result.add(map); + } + reader.endArray(); + } catch (Exception e) { + e.printStackTrace(); + } + + return result; + } + + static Object getValue(JsonReader r) throws IOException { + Object value = null; + JsonToken token = r.peek(); + + switch (token) { + case NULL: + r.nextNull(); + break; + case BOOLEAN: + value = r.nextBoolean(); + break; + default: + value = r.nextString(); + } + + return value; + } } diff --git a/src/com/martinadamek/jsonandroid/JacksonJson.java b/src/com/martinadamek/jsonandroid/JacksonJson.java index b758a5d..8a68574 100644 --- a/src/com/martinadamek/jsonandroid/JacksonJson.java +++ b/src/com/martinadamek/jsonandroid/JacksonJson.java @@ -1,9 +1,5 @@ package com.martinadamek.jsonandroid; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonParser; -import org.codehaus.jackson.JsonToken; - import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; @@ -11,6 +7,10 @@ import java.util.List; import java.util.Map; +import org.codehaus.jackson.JsonFactory; +import org.codehaus.jackson.JsonParser; +import org.codehaus.jackson.JsonToken; + public class JacksonJson implements TestJson { private static JsonFactory sJsonFactory = new JsonFactory(); @@ -24,22 +24,26 @@ public List parsePublicTimeline(InputStream inputStream) { List result = new ArrayList(); try { + Map map; + String key; + String key2; + JsonParser p = sJsonFactory.createJsonParser(inputStream); p.nextToken(); while (p.nextToken() != JsonToken.END_ARRAY) { - Map map = new HashMap(); + map = new HashMap(); while (p.nextToken() != JsonToken.END_OBJECT) { - String key = p.getCurrentName(); + key = p.getCurrentName(); p.nextToken(); // move to value, or START_OBJECT/START_ARRAY if (p.getCurrentToken() == JsonToken.START_OBJECT) { while (p.nextToken() != JsonToken.END_OBJECT) { - String key2 = p.getCurrentName(); + key2 = p.getCurrentName(); p.nextToken(); // move to value, or START_OBJECT/START_ARRAY map.put("user." + key2, p.getText()); } diff --git a/src/com/martinadamek/jsonandroid/SimpleJson.java b/src/com/martinadamek/jsonandroid/SimpleJson.java index fa52bee..1a00246 100644 --- a/src/com/martinadamek/jsonandroid/SimpleJson.java +++ b/src/com/martinadamek/jsonandroid/SimpleJson.java @@ -1,13 +1,17 @@ package com.martinadamek.jsonandroid; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.*; - public class SimpleJson implements TestJson { public String getName() { @@ -20,18 +24,24 @@ public List parsePublicTimeline(InputStream inputStream) { JSONParser p = new JSONParser(); try { + Map map; + Set keys; + Set keys2; + JSONObject user; + JSONObject jsonObject; + JSONArray jsonArray = (JSONArray) p.parse(new InputStreamReader(inputStream)); int size = jsonArray.size(); for (int i = 0; i < size; i++) { - Map map = new HashMap(); - JSONObject jsonObject = (JSONObject) jsonArray.get(i); + map = new HashMap(); + jsonObject = (JSONObject) jsonArray.get(i); - Set keys = jsonObject.keySet(); + keys = jsonObject.keySet(); for (Object key: keys) { if ("user".equals(key)) { - JSONObject user = (JSONObject) jsonObject.get(key); - Set keys2 = user.keySet(); + user = (JSONObject) jsonObject.get(key); + keys2 = user.keySet(); for (Object key2: keys2) { map.put("user." + key2, user.get(key2)); } diff --git a/src/com/martinadamek/jsonandroid/SmartJson.java b/src/com/martinadamek/jsonandroid/SmartJson.java index 6c69dd3..75cbfdb 100644 --- a/src/com/martinadamek/jsonandroid/SmartJson.java +++ b/src/com/martinadamek/jsonandroid/SmartJson.java @@ -2,7 +2,11 @@ import java.io.InputStream; import java.io.InputStreamReader; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; import net.minidev.json.JSONArray; import net.minidev.json.JSONObject; @@ -10,45 +14,51 @@ public class SmartJson implements TestJson { - public String getName() { - return "JSON.smart"; - } + public String getName() { + return "JSON.smart"; + } - public List parsePublicTimeline(InputStream inputStream) { + public List parsePublicTimeline(InputStream inputStream) { - List result = new ArrayList(); + List result = new ArrayList(); - JSONParser p = new JSONParser(JSONParser.MODE_PERMISSIVE); - - try { - JSONArray jsonArray = (JSONArray) p.parse(new InputStreamReader(inputStream)); - int size = jsonArray.size(); + JSONParser p = new JSONParser(JSONParser.MODE_PERMISSIVE); - for (int i = 0; i < size; i++) { - Map map = new HashMap(); - JSONObject jsonObject = (JSONObject) jsonArray.get(i); + try { + Map map; + Set keys; + Set keys2; + JSONObject user; + JSONObject jsonObject; + + JSONArray jsonArray = (JSONArray) p.parse(new InputStreamReader(inputStream)); + int size = jsonArray.size(); + + for (int i = 0; i < size; i++) { + map = new HashMap(); + jsonObject = (JSONObject) jsonArray.get(i); - Set keys = jsonObject.keySet(); - for (Object key: keys) { - if ("user".equals(key)) { - JSONObject user = (JSONObject) jsonObject.get(key); - Set keys2 = user.keySet(); - for (Object key2: keys2) { - map.put("user." + key2, user.get(key2)); - } - } else { - map.put(key, jsonObject.get(key)); - } - } + keys = jsonObject.keySet(); + for (Object key: keys) { + if ("user".equals(key)) { + user = (JSONObject) jsonObject.get(key); + keys2 = user.keySet(); + for (Object key2: keys2) { + map.put("user." + key2, user.get(key2)); + } + } else { + map.put(key, jsonObject.get(key)); + } + } - result.add(map); - } + result.add(map); + } - } catch (Exception e) { - e.printStackTrace(); - } + } catch (Exception e) { + e.printStackTrace(); + } - return result; - } + return result; + } }