Skip to content

Instantly share code, notes, and snippets.

@tyaslab
Created February 11, 2016 05:17
Show Gist options
  • Save tyaslab/e92a5cd4f94cfdd648cc to your computer and use it in GitHub Desktop.
Save tyaslab/e92a5cd4f94cfdd648cc to your computer and use it in GitHub Desktop.
Android Snippet - Parse JSON
import com.google.gson.stream.JsonReader;
protected T generateData(InputStream inputStream) throws Exception {
T t = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
JsonReader jsonReader = null;
try {
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
jsonReader = new JsonReader(inputStreamReader);
t = generateModel(jsonReader);
// ...
public void createFromJSON( JsonReader jsonReader ) throws IOException {
jsonReader.beginObject();
while( jsonReader.hasNext() ){
final String name = jsonReader.nextName();
final boolean isNull = jsonReader.peek() == JsonToken.NULL;
if( name.equals( "parse" ) && !isNull ) {
jsonReader.beginObject();
while( jsonReader.hasNext() ) {
final String innerName = jsonReader.nextName();
final boolean isInnerNull = jsonReader.peek() == JsonToken.NULL;
if( innerName.equals( "links" ) && !isInnerNull ) {
jsonReader.beginArray();
while( jsonReader.hasNext() ) {
jsonReader.beginObject();
while( jsonReader.hasNext() ) {
final String innerInnerName = jsonReader.nextName();
final boolean isInnerInnerNull = jsonReader.peek() == JsonToken.NULL;
if( innerInnerName.equals( "*" ) && !isInnerInnerNull ) {
links.add( jsonReader.nextString() );
}
else {
jsonReader.skipValue();
}
}
jsonReader.endObject();
}
jsonReader.endArray();
}
else jsonReader.skipValue();
}
jsonReader.endObject();
}
else
jsonReader.skipValue();
}
jsonReader.endObject();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment