com.google.gson.stream.JsonToken#END_ARRAY源码实例Demo

下面列出了com.google.gson.stream.JsonToken#END_ARRAY 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
public Users gson(JsonReader reader) throws IOException {
    Users uc = new Users();
    reader.beginObject();

    JsonToken token;
    while ((token = reader.peek()) != JsonToken.END_OBJECT) {
        if (token == JsonToken.NAME) {
            String fieldname = reader.nextName();
            if ("users".equals(fieldname)) {
                uc.users = new ArrayList<>();
                reader.beginArray();
                while (reader.peek() != JsonToken.END_ARRAY) {
                    uc.users.add(gsonUser(reader));
                }
                reader.endArray();
            }
        }
    }
    reader.endObject();
    return uc;
}
 
源代码2 项目: esjc   文件: StreamAclJsonAdapter.java
private static List<String> readRoles(JsonReader reader) throws IOException {
    if (reader.peek() == JsonToken.STRING) {
        return singletonList(reader.nextString());
    } else {
        List<String> roles = new ArrayList<>();

        reader.beginArray();

        while (reader.peek() != JsonToken.END_ARRAY) {
            roles.add(reader.nextString());
        }

        reader.endArray();

        return roles;
    }
}
 
源代码3 项目: geogson   文件: PositionsAdapter.java
private static Positions parseSinglePosition(JsonReader in) throws IOException {
    double lon = in.nextDouble();
    double lat = in.nextDouble();
    double alt = Double.NaN;

    if (in.hasNext()) {
        alt = in.nextDouble();
    }

    // Skip eventual other dimensions
    while (in.peek() != JsonToken.END_ARRAY) {
        in.skipValue();
    }

    return new SinglePosition(lon, lat, alt);
}
 
源代码4 项目: arcusplatform   文件: IpcdJsonReader.java
/**
 * Returns the type of the next token without consuming it.
 */
public JsonToken peek() throws IOException {
   int p = peeked;
   if (p == PEEKED_NONE) {
      p = doPeek();
   }

   switch (p) {
      case PEEKED_BEGIN_OBJECT:
         return JsonToken.BEGIN_OBJECT;
      case PEEKED_END_OBJECT:
         return JsonToken.END_OBJECT;
      case PEEKED_BEGIN_ARRAY:
         return JsonToken.BEGIN_ARRAY;
      case PEEKED_END_ARRAY:
         return JsonToken.END_ARRAY;
      case PEEKED_SINGLE_QUOTED_NAME:
      case PEEKED_DOUBLE_QUOTED_NAME:
      case PEEKED_UNQUOTED_NAME:
         return JsonToken.NAME;
      case PEEKED_TRUE:
      case PEEKED_FALSE:
         return JsonToken.BOOLEAN;
      case PEEKED_NULL:
         return JsonToken.NULL;
      case PEEKED_SINGLE_QUOTED:
      case PEEKED_DOUBLE_QUOTED:
      case PEEKED_UNQUOTED:
      case PEEKED_BUFFERED:
         return JsonToken.STRING;
      case PEEKED_LONG:
      case PEEKED_NUMBER:
         return JsonToken.NUMBER;
      case PEEKED_EOF:
         return JsonToken.END_DOCUMENT;
      default:
         throw new AssertionError();
   }
}
 
源代码5 项目: firebase-admin-java   文件: JsonMapper.java
private static List<Object> unwrapJsonArray(JsonReader jsonReader) throws IOException {
  List<Object> list = new ArrayList<>();
  jsonReader.beginArray();
  while (jsonReader.peek() != JsonToken.END_ARRAY) {
    list.add(unwrapJson(jsonReader));
  }
  jsonReader.endArray();
  return list;
}
 
源代码6 项目: ProjectAres   文件: SemanticVersionTypeAdapter.java
@Override
public SemanticVersion read(JsonReader in) throws IOException {
    in.beginArray();
    int major = in.nextInt();
    int minor = in.nextInt();
    int patch = in.peek() == JsonToken.END_ARRAY ? 0 : in.nextInt();
    in.endArray();
    return new SemanticVersion(major, minor, patch);
}
 
源代码7 项目: immutables   文件: JsonParserReader.java
private static JsonToken toGsonToken(com.fasterxml.jackson.core.JsonToken token) {
  switch (token) {
  case START_ARRAY:
    return JsonToken.BEGIN_ARRAY;
  case END_ARRAY:
    return JsonToken.END_ARRAY;
  case START_OBJECT:
    return JsonToken.BEGIN_OBJECT;
  case END_OBJECT:
    return JsonToken.END_OBJECT;
  case FIELD_NAME:
    return JsonToken.NAME;
  case VALUE_FALSE:
    return JsonToken.BOOLEAN;
  case VALUE_TRUE:
    return JsonToken.BOOLEAN;
  case VALUE_NULL:
    return JsonToken.NULL;
  case VALUE_NUMBER_INT:
    return JsonToken.NUMBER;
  case VALUE_NUMBER_FLOAT:
    return JsonToken.NUMBER;
  case VALUE_STRING:
  case VALUE_EMBEDDED_OBJECT:
    return JsonToken.STRING;
  default: // Not semantically equivalent
    return JsonToken.NULL;
  }
}
 
源代码8 项目: gson   文件: TypeAdapters.java
@Override public BitSet read(JsonReader in) throws IOException {
  BitSet bitset = new BitSet();
  in.beginArray();
  int i = 0;
  JsonToken tokenType = in.peek();
  while (tokenType != JsonToken.END_ARRAY) {
    boolean set;
    switch (tokenType) {
    case NUMBER:
      set = in.nextInt() != 0;
      break;
    case BOOLEAN:
      set = in.nextBoolean();
      break;
    case STRING:
      String stringValue = in.nextString();
      try {
        set = Integer.parseInt(stringValue) != 0;
      } catch (NumberFormatException e) {
        throw new JsonSyntaxException(
            "Error: Expecting: bitset number value (1, 0), Found: " + stringValue);
      }
      break;
    default:
      throw new JsonSyntaxException("Invalid bitset value type: " + tokenType);
    }
    if (set) {
      bitset.set(i);
    }
    ++i;
    tokenType = in.peek();
  }
  in.endArray();
  return bitset;
}
 
源代码9 项目: framework   文件: TypeAdapters.java
public BitSet read(JsonReader in) throws IOException {
  if (in.peek() == JsonToken.NULL) {
    in.nextNull();
    return null;
  }

  BitSet bitset = new BitSet();
  in.beginArray();
  int i = 0;
  JsonToken tokenType = in.peek();
  while (tokenType != JsonToken.END_ARRAY) {
    boolean set;
    switch (tokenType) {
    case NUMBER:
      set = in.nextInt() != 0;
      break;
    case BOOLEAN:
      set = in.nextBoolean();
      break;
    case STRING:
      String stringValue = in.nextString();
      try {
        set = Integer.parseInt(stringValue) != 0;
      } catch (NumberFormatException e) {
        throw new JsonSyntaxException(
            "Error: Expecting: bitset number value (1, 0), Found: " + stringValue);
      }
      break;
    default:
      throw new JsonSyntaxException("Invalid bitset value type: " + tokenType);
    }
    if (set) {
      bitset.set(i);
    }
    ++i;
    tokenType = in.peek();
  }
  in.endArray();
  return bitset;
}
 
源代码10 项目: bazel   文件: TraceEvent.java
private static ImmutableList<Object> parseArray(JsonReader reader) throws IOException {
  ImmutableList.Builder<Object> builder = ImmutableList.builder();

  reader.beginArray();
  while (reader.peek() != JsonToken.END_ARRAY) {
    Object val = parseSingleValueRecursively(reader);
    builder.add(val);
  }
  reader.endArray();

  return builder.build();
}
 
源代码11 项目: letv   文件: JsonTreeReader.java
public boolean hasNext() throws IOException {
    JsonToken token = peek();
    return (token == JsonToken.END_OBJECT || token == JsonToken.END_ARRAY) ? false : true;
}
 
源代码12 项目: letv   文件: JsonTreeReader.java
public JsonToken peek() throws IOException {
    if (this.stack.isEmpty()) {
        return JsonToken.END_DOCUMENT;
    }
    Iterator<?> o = peekStack();
    if (o instanceof Iterator) {
        boolean isObject = this.stack.get(this.stack.size() - 2) instanceof JsonObject;
        Iterator<?> iterator = o;
        if (!iterator.hasNext()) {
            return isObject ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
        } else {
            if (isObject) {
                return JsonToken.NAME;
            }
            this.stack.add(iterator.next());
            return peek();
        }
    } else if (o instanceof JsonObject) {
        return JsonToken.BEGIN_OBJECT;
    } else {
        if (o instanceof JsonArray) {
            return JsonToken.BEGIN_ARRAY;
        }
        if (o instanceof JsonPrimitive) {
            JsonPrimitive primitive = (JsonPrimitive) o;
            if (primitive.isString()) {
                return JsonToken.STRING;
            }
            if (primitive.isBoolean()) {
                return JsonToken.BOOLEAN;
            }
            if (primitive.isNumber()) {
                return JsonToken.NUMBER;
            }
            throw new AssertionError();
        } else if (o instanceof JsonNull) {
            return JsonToken.NULL;
        } else {
            if (o == SENTINEL_CLOSED) {
                throw new IllegalStateException("JsonReader is closed");
            }
            throw new AssertionError();
        }
    }
}
 
源代码13 项目: letv   文件: TypeAdapters.java
public BitSet read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }
    BitSet bitset = new BitSet();
    in.beginArray();
    int i = 0;
    JsonToken tokenType = in.peek();
    while (tokenType != JsonToken.END_ARRAY) {
        boolean set;
        switch (tokenType) {
            case NUMBER:
                if (in.nextInt() == 0) {
                    set = false;
                    break;
                }
                set = true;
                break;
            case BOOLEAN:
                set = in.nextBoolean();
                break;
            case STRING:
                String stringValue = in.nextString();
                try {
                    set = Integer.parseInt(stringValue) != 0;
                    break;
                } catch (NumberFormatException e) {
                    throw new JsonSyntaxException("Error: Expecting: bitset number value (1, 0), Found: " + stringValue);
                }
            default:
                throw new JsonSyntaxException("Invalid bitset value type: " + tokenType);
        }
        if (set) {
            bitset.set(i);
        }
        i++;
        tokenType = in.peek();
    }
    in.endArray();
    return bitset;
}
 
源代码14 项目: esjc   文件: StreamMetadataJsonAdapter.java
@Override
public StreamMetadata read(JsonReader reader) throws IOException {
    StreamMetadata.Builder builder = StreamMetadata.newBuilder();

    if (reader.peek() == JsonToken.NULL) {
        return null;
    }

    reader.beginObject();

    while (reader.peek() != JsonToken.END_OBJECT && reader.hasNext()) {
        String name = reader.nextName();
        switch (name) {
            case MAX_COUNT:
                builder.maxCount(reader.nextLong());
                break;
            case MAX_AGE:
                builder.maxAge(Duration.ofSeconds(reader.nextLong()));
                break;
            case TRUNCATE_BEFORE:
                builder.truncateBefore(reader.nextLong());
                break;
            case CACHE_CONTROL:
                builder.cacheControl(Duration.ofSeconds(reader.nextLong()));
                break;
            case ACL:
                StreamAcl acl = streamAclJsonAdapter.read(reader);
                if (acl != null) {
                    builder.aclReadRoles(acl.readRoles);
                    builder.aclWriteRoles(acl.writeRoles);
                    builder.aclDeleteRoles(acl.deleteRoles);
                    builder.aclMetaReadRoles(acl.metaReadRoles);
                    builder.aclMetaWriteRoles(acl.metaWriteRoles);
                }
                break;
            default:
                switch (reader.peek()) {
                    case NULL:
                        reader.nextNull();
                        builder.customProperty(name, (String) null);
                        break;
                    case BEGIN_ARRAY:
                        List<Object> values = new ArrayList<>();

                        reader.beginArray();
                        while (reader.peek() != JsonToken.END_ARRAY) {
                            switch (reader.peek()) {
                                case NULL:
                                    reader.nextNull();
                                    values.add(null);
                                    break;
                                case BOOLEAN:
                                    values.add(reader.nextBoolean());
                                    break;
                                case NUMBER:
                                    values.add(new BigDecimal(reader.nextString()));
                                    break;
                                case STRING:
                                    values.add(reader.nextString());
                            }
                        }
                        reader.endArray();

                        if (values.stream().anyMatch(v -> v instanceof Boolean)) {
                            builder.customProperty(name, values.stream().toArray(Boolean[]::new));
                        } else if (values.stream().anyMatch(v -> v instanceof Number)) {
                            builder.customProperty(name, values.stream().toArray(Number[]::new));
                        } else {
                            builder.customProperty(name, values.stream().toArray(String[]::new));
                        }

                        break;
                    case BOOLEAN:
                        builder.customProperty(name, reader.nextBoolean());
                        break;
                    case NUMBER:
                        builder.customProperty(name, new BigDecimal(reader.nextString()));
                        break;
                    case STRING:
                        builder.customProperty(name, reader.nextString());
                        break;
                    default:
                        reader.skipValue();
                }
        }
    }

    reader.endObject();

    return builder.build();
}
 
源代码15 项目: MiBandDecompiled   文件: JsonTreeReader.java
public JsonToken peek()
{
    if (c.isEmpty())
    {
        return JsonToken.END_DOCUMENT;
    }
    Object obj = a();
    if (obj instanceof Iterator)
    {
        boolean flag = c.get(-2 + c.size()) instanceof JsonObject;
        Iterator iterator = (Iterator)obj;
        if (iterator.hasNext())
        {
            if (flag)
            {
                return JsonToken.NAME;
            } else
            {
                c.add(iterator.next());
                return peek();
            }
        }
        if (flag)
        {
            return JsonToken.END_OBJECT;
        } else
        {
            return JsonToken.END_ARRAY;
        }
    }
    if (obj instanceof JsonObject)
    {
        return JsonToken.BEGIN_OBJECT;
    }
    if (obj instanceof JsonArray)
    {
        return JsonToken.BEGIN_ARRAY;
    }
    if (obj instanceof JsonPrimitive)
    {
        JsonPrimitive jsonprimitive = (JsonPrimitive)obj;
        if (jsonprimitive.isString())
        {
            return JsonToken.STRING;
        }
        if (jsonprimitive.isBoolean())
        {
            return JsonToken.BOOLEAN;
        }
        if (jsonprimitive.isNumber())
        {
            return JsonToken.NUMBER;
        } else
        {
            throw new AssertionError();
        }
    }
    if (obj instanceof JsonNull)
    {
        return JsonToken.NULL;
    }
    if (obj == b)
    {
        throw new IllegalStateException("JsonReader is closed");
    } else
    {
        throw new AssertionError();
    }
}
 
源代码16 项目: gson   文件: JsonTreeReader.java
@Override public boolean hasNext() throws IOException {
  JsonToken token = peek();
  return token != JsonToken.END_OBJECT && token != JsonToken.END_ARRAY;
}
 
源代码17 项目: gson   文件: JsonTreeReader.java
@Override public JsonToken peek() throws IOException {
  if (stackSize == 0) {
    return JsonToken.END_DOCUMENT;
  }

  Object o = peekStack();
  if (o instanceof Iterator) {
    boolean isObject = stack[stackSize - 2] instanceof JsonObject;
    Iterator<?> iterator = (Iterator<?>) o;
    if (iterator.hasNext()) {
      if (isObject) {
        return JsonToken.NAME;
      } else {
        push(iterator.next());
        return peek();
      }
    } else {
      return isObject ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
    }
  } else if (o instanceof JsonObject) {
    return JsonToken.BEGIN_OBJECT;
  } else if (o instanceof JsonArray) {
    return JsonToken.BEGIN_ARRAY;
  } else if (o instanceof JsonPrimitive) {
    JsonPrimitive primitive = (JsonPrimitive) o;
    if (primitive.isString()) {
      return JsonToken.STRING;
    } else if (primitive.isBoolean()) {
      return JsonToken.BOOLEAN;
    } else if (primitive.isNumber()) {
      return JsonToken.NUMBER;
    } else {
      throw new AssertionError();
    }
  } else if (o instanceof JsonNull) {
    return JsonToken.NULL;
  } else if (o == SENTINEL_CLOSED) {
    throw new IllegalStateException("JsonReader is closed");
  } else {
    throw new AssertionError();
  }
}
 
源代码18 项目: framework   文件: JsonTreeReader.java
@Override public boolean hasNext() throws IOException {
  JsonToken token = peek();
  return token != JsonToken.END_OBJECT && token != JsonToken.END_ARRAY;
}
 
源代码19 项目: framework   文件: JsonTreeReader.java
@Override public JsonToken peek() throws IOException {
  if (stack.isEmpty()) {
    return JsonToken.END_DOCUMENT;
  }

  Object o = peekStack();
  if (o instanceof Iterator) {
    boolean isObject = stack.get(stack.size() - 2) instanceof JsonObject;
    Iterator<?> iterator = (Iterator<?>) o;
    if (iterator.hasNext()) {
      if (isObject) {
        return JsonToken.NAME;
      } else {
        stack.add(iterator.next());
        return peek();
      }
    } else {
      return isObject ? JsonToken.END_OBJECT : JsonToken.END_ARRAY;
    }
  } else if (o instanceof JsonObject) {
    return JsonToken.BEGIN_OBJECT;
  } else if (o instanceof JsonArray) {
    return JsonToken.BEGIN_ARRAY;
  } else if (o instanceof JsonPrimitive) {
    JsonPrimitive primitive = (JsonPrimitive) o;
    if (primitive.isString()) {
      return JsonToken.STRING;
    } else if (primitive.isBoolean()) {
      return JsonToken.BOOLEAN;
    } else if (primitive.isNumber()) {
      return JsonToken.NUMBER;
    } else {
      throw new AssertionError();
    }
  } else if (o instanceof JsonNull) {
    return JsonToken.NULL;
  } else if (o == SENTINEL_CLOSED) {
    throw new IllegalStateException("JsonReader is closed");
  } else {
    throw new AssertionError();
  }
}
 
@Override
public StandardException read(JsonReader in) throws IOException {
    in.beginObject();

    int severity = 0;
    String textMessage = null;
    String sqlState = null;
    String messageId = null;
    List<String> objectStrings = null;
    while (in.peek() != JsonToken.END_OBJECT) {
        String nextName = in.nextName();
        if ("severity".equals(nextName))
            severity = in.nextInt();
        else if ("textMessage".equals(nextName))
            textMessage = in.nextString();
        else if ("sqlState".equals(nextName))
            sqlState = in.nextString();
        else if ("messageId".equals(nextName))
            messageId = in.nextString();
        else if ("arguments".equals(nextName)) {
            if (in.peek() != JsonToken.NULL) {
                in.beginArray();
                objectStrings = new ArrayList<String>();
                while (in.peek() != JsonToken.END_ARRAY) {
                    objectStrings.add(in.nextString());
                }
                in.endArray();
            } else
                in.nextNull();
        }
    }

    in.endObject();

    StandardException se;
    if (objectStrings != null) {
        Object[] objects = new Object[objectStrings.size()];
        objectStrings.toArray(objects);
        se = StandardException.newException(messageId, objects);
    } else {
        se = StandardException.newException(messageId);
    }
    se.setSeverity(severity);
    se.setSqlState(sqlState);
    se.setTextMessage(textMessage);

    return se;
}