@Override public Object fromJson(JsonReader reader) throws IOException { List<Object> list = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { list.add(elementAdapter.fromJson(reader)); } reader.endArray(); Object array = Array.newInstance(elementClass, list.size()); for (int i = 0; i < list.size(); i++) { Array.set(array, i, list.get(i)); } return array; }
@Override public SortedSet<T> fromJson(JsonReader reader) throws IOException { TreeSet<T> result = new TreeSet<>(); reader.beginArray(); while (reader.hasNext()) { result.add(elementAdapter.fromJson(reader)); } reader.endArray(); return result; }
@Override public List<Long> fromJson(JsonReader reader) throws IOException { List<Long> result = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { result.add(UINT64_JSON_ADAPTER.fromJson(reader)); } reader.endArray(); return result; }
@Override public C fromJson(JsonReader reader) throws IOException { C result = newCollection(); reader.beginArray(); while (reader.hasNext()) { result.add(elementAdapter.fromJson(reader)); } reader.endArray(); return result; }
case BEGIN_ARRAY: List<Object> list = new ArrayList<>(); beginArray(); while (hasNext()) { list.add(readJsonValue());
@Override public Object fromJson(JsonReader reader) throws IOException { List<Object> list = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { list.add(elementAdapter.fromJson(reader)); } reader.endArray(); Object array = Array.newInstance(elementClass, list.size()); for (int i = 0; i < list.size(); i++) { Array.set(array, i, list.get(i)); } return array; }
@Override public T fromJson(JsonReader reader) throws IOException { // We can't know the size of the array at this point. //noinspection CollectionWithoutInitialCapacity List<Object> result = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { result.add(elementAdapter.fromJson(reader)); } reader.endArray(); if (isFirst) { //noinspection unchecked return !result.isEmpty() ? (T) result.get(0) : null; } //noinspection unchecked return (T) result; }
@Override public C fromJson(JsonReader reader) throws IOException { C result = newCollection(); reader.beginArray(); while (reader.hasNext()) { result.add(elementAdapter.fromJson(reader)); } reader.endArray(); return result; }
@Override public List<List<XingUser>> fromJson(JsonReader reader) throws IOException { List<List<XingUser>> paths = new LinkedList<>(); reader.beginArray(); while (reader.hasNext()) { reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if ("users".equals(name)) { paths.add(pathAdapter.fromJson(reader)); } else { reader.skipValue(); } } reader.endObject(); } reader.endArray(); return paths; }
@Override public Users moshi(com.squareup.moshi.JsonReader reader) throws IOException { Users users = new Users(); reader.beginObject(); while (reader.hasNext()) { switch (reader.nextName()) { case "users": users.users = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { users.users.add(moshiUser(reader)); } reader.endArray(); break; default: reader.skipValue(); } } reader.endObject(); return users; }
case BEGIN_ARRAY: List<Object> list = new ArrayList<>(); beginArray(); while (hasNext()) { list.add(readJsonValue());
case "tags": user.tags = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { user.tags.add(reader.nextString()); case "friends": user.friends = new ArrayList<>(); reader.beginArray(); while (reader.hasNext()) { user.friends.add(moshiFriend(reader));
break; case "annotations": reader.beginArray(); while (reader.hasNext()) { result.addAnnotation(ANNOTATION_ADAPTER.fromJson(reader)); break; case "binaryAnnotations": reader.beginArray(); while (reader.hasNext()) { result.addBinaryAnnotation(BINARY_ANNOTATION_ADAPTER.fromJson(reader));