Example usage for com.google.gson.stream JsonReader nextBoolean

List of usage examples for com.google.gson.stream JsonReader nextBoolean

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader nextBoolean.

Prototype

public boolean nextBoolean() throws IOException 

Source Link

Document

Returns the com.google.gson.stream.JsonToken#BOOLEAN boolean value of the next token, consuming it.

Usage

From source file:com.github.gv2011.jsong.JsongAdapter.java

License:Open Source License

private JsonNode deserialize(final JsonFactoryImp jf, final JsonReader in) {
    return call(() -> {
        switch (in.peek()) {
        case STRING:
            return jf.primitive(in.nextString());
        case NUMBER:
            return jf.primitive(new BigDecimal(in.nextString()));
        case BOOLEAN:
            return jf.primitive(in.nextBoolean());
        case NULL:
            in.nextNull();//  w  w w . j  a  v a  2  s  .  co m
            return jf.jsonNull();
        case BEGIN_ARRAY:
            in.beginArray();
            final JsonList list = XStream.fromIterator(new It(jf, in)).collect(jf.toJsonList());
            in.endArray();
            return list;
        case BEGIN_OBJECT:
            in.beginObject();
            final JsonObject obj = XStream.fromIterator(new Itm(jf, in)).collect(jf.toJsonObject());
            in.endObject();
            return obj;
        case NAME:
        case END_DOCUMENT:
        case END_OBJECT:
        case END_ARRAY:
        default:
            throw new IllegalArgumentException();
        }
    });
}

From source file:com.github.kevinsawicki.halligan.Resource.java

License:Open Source License

/**
 * Parse resource property/*from w ww.  j  a  v  a 2 s .  com*/
 *
 * @param reader
 * @param name
 * @throws IOException
 */
protected void parseProperty(final JsonReader reader, final String name) throws IOException {
    JsonToken next = reader.peek();
    switch (next) {
    case BEGIN_OBJECT:
        properties.put(name, gson.getGson().fromJson(reader, Map.class));
        break;
    case STRING:
        properties.put(name, reader.nextString());
        break;
    case NUMBER:
        properties.put(name, reader.nextDouble());
        break;
    case NULL:
        properties.put(name, null);
        reader.nextNull();
        break;
    case BOOLEAN:
        properties.put(name, reader.nextBoolean());
        break;
    default:
        throw new IOException("Unrecognized property value token: " + next);
    }
}

From source file:com.github.lindenb.gatkui.Json2Xml.java

License:Open Source License

private void parse(String label, JsonReader r) throws Exception {
    if (!r.hasNext())
        return;/*from  ww w  .j a v  a2 s  .co m*/
    JsonToken token = r.peek();
    switch (token) {
    case NAME:
        break;
    case BEGIN_OBJECT: {
        r.beginObject();
        parseObject(label, r);
        break;
    }
    case END_OBJECT: {
        break;
    }
    case BEGIN_ARRAY: {
        r.beginArray();
        parseArray(label, r);
        break;
    }
    case END_ARRAY: {
        break;
    }
    case NULL: {
        r.nextNull();
        w.writeEmptyElement(NS, "null");
        if (label != null)
            w.writeAttribute("name", label);
        break;
    }
    case STRING: {
        w.writeStartElement(NS, "string");
        if (label != null)
            w.writeAttribute("name", label);
        w.writeCharacters(r.nextString());
        w.writeEndElement();
        break;
    }
    case NUMBER: {
        w.writeStartElement(NS, "number");
        if (label != null)
            w.writeAttribute("name", label);
        String s;
        try {
            s = String.valueOf(r.nextLong());
        } catch (Exception err) {
            s = String.valueOf(r.nextDouble());
        }

        w.writeCharacters(s);
        w.writeEndElement();
        break;
    }
    case BOOLEAN: {
        w.writeStartElement(NS, "boolean");
        if (label != null)
            w.writeAttribute("name", label);
        w.writeCharacters(String.valueOf(r.nextBoolean()));
        w.writeEndElement();
        break;
    }
    case END_DOCUMENT: {
        break;
    }
    default:
        throw new IllegalStateException(token.name());
    }

}

From source file:com.gs.reladomo.serial.gson.GsonWrappedListTypedAdapter.java

License:Apache License

@Override
public SerializedList<U, T> read(JsonReader jsonReader) throws IOException {
    ReladomoDeserializer deserializer;/*  w  ww .j  a  va  2  s . c o m*/
    if (this.typeClass == null) {
        deserializer = new ReladomoDeserializer();
    } else {
        deserializer = new ReladomoDeserializer(typeClass);
    }
    deserializer.setIgnoreUnknown();
    JsonDeserializerState state = JsonDeserializerState.ListStartState.INSTANCE;
    while (true) {
        JsonToken nextToken = jsonReader.peek();
        //BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT;
        if (JsonToken.BEGIN_OBJECT == nextToken) {
            jsonReader.beginObject();
            state = state.startObject(deserializer);
        } else if (JsonToken.END_OBJECT == nextToken) {
            jsonReader.endObject();
            state = state.endObject(deserializer);
        } else if (JsonToken.BEGIN_ARRAY == nextToken) {
            jsonReader.beginArray();
            state = state.startArray(deserializer);
        } else if (JsonToken.END_ARRAY == nextToken) {
            jsonReader.endArray();
            state = state.endArray(deserializer);
        } else if (JsonToken.BOOLEAN == nextToken) {
            if (jsonReader.nextBoolean()) {
                state = state.valueTrue(deserializer);
            } else {
                state = state.valueFalse(deserializer);
            }
        } else if (JsonToken.NAME == nextToken) {
            String name = jsonReader.nextName();
            state = state.fieldName(name, deserializer);
        } else if (JsonToken.NUMBER == nextToken) {
            String value = jsonReader.nextString();
            state = state.valueString(value, deserializer); // we do the parsing to avoid precision loss
        } else if (JsonToken.STRING == nextToken) {
            String value = jsonReader.nextString();
            Attribute attribute = deserializer.getCurrentAttribute();
            if (attribute instanceof TimestampAttribute) {
                Timestamp timestamp = GsonReladomoTypeAdapterSerialWriter.jsonToTimestamp(value);
                state = state.valueTimestamp(timestamp, deserializer);
            } else {
                state = state.valueString(value, deserializer);
            }
        } else if (JsonToken.NULL == nextToken) {
            jsonReader.nextNull();
            state = state.valueNull(deserializer);
        } else if (JsonToken.END_DOCUMENT == nextToken) {
            break;
        }
    }
    return deserializer.getDeserializedResultAsList();
}

From source file:com.gs.reladomo.serial.gson.GsonWrappedTypedAdapter.java

License:Apache License

@Override
public Serialized<T> read(JsonReader jsonReader) throws IOException {
    ReladomoDeserializer deserializer;//from   w w  w . j av a  2  s.c om
    if (this.typeClass == null) {
        deserializer = new ReladomoDeserializer();
    } else {
        deserializer = new ReladomoDeserializer(typeClass);
    }
    deserializer.setIgnoreUnknown();
    JsonDeserializerState state = JsonDeserializerState.NormalParserState.INSTANCE;
    while (true) {
        JsonToken nextToken = jsonReader.peek();
        //BEGIN_ARRAY, END_ARRAY, BEGIN_OBJECT, END_OBJECT, NAME, STRING, NUMBER, BOOLEAN, NULL, END_DOCUMENT;
        if (JsonToken.BEGIN_OBJECT == nextToken) {
            jsonReader.beginObject();
            state = state.startObject(deserializer);
        } else if (JsonToken.END_OBJECT == nextToken) {
            jsonReader.endObject();
            state = state.endObject(deserializer);
        } else if (JsonToken.BEGIN_ARRAY == nextToken) {
            jsonReader.beginArray();
            state = state.startArray(deserializer);
        } else if (JsonToken.END_ARRAY == nextToken) {
            jsonReader.endArray();
            state = state.endArray(deserializer);
        } else if (JsonToken.BOOLEAN == nextToken) {
            if (jsonReader.nextBoolean()) {
                state = state.valueTrue(deserializer);
            } else {
                state = state.valueFalse(deserializer);
            }
        } else if (JsonToken.NAME == nextToken) {
            String name = jsonReader.nextName();
            state = state.fieldName(name, deserializer);
        } else if (JsonToken.NUMBER == nextToken) {
            String value = jsonReader.nextString();
            state = state.valueString(value, deserializer); // we do the parsing to avoid precision loss
        } else if (JsonToken.STRING == nextToken) {
            String value = jsonReader.nextString();
            Attribute attribute = deserializer.getCurrentAttribute();
            if (attribute instanceof TimestampAttribute) {
                Timestamp timestamp = GsonReladomoTypeAdapterSerialWriter.jsonToTimestamp(value);
                state = state.valueTimestamp(timestamp, deserializer);
            } else {
                state = state.valueString(value, deserializer);
            }
        } else if (JsonToken.NULL == nextToken) {
            jsonReader.nextNull();
            state = state.valueNull(deserializer);
        } else if (JsonToken.END_DOCUMENT == nextToken) {
            break;
        }
    }
    return deserializer.getDeserializedResult();
}

From source file:com.ibm.watson.developer_cloud.tradeoff_analytics.v1.util.ColumnTypeAdapter.java

License:Open Source License

@Override
public Column read(JsonReader reader) throws IOException {
    if (reader.peek() == JsonToken.NULL) {
        reader.nextNull();/* www.j a  v a  2 s.  c  o  m*/
        return null;
    }

    ColumnType type = ColumnType.TEXT;
    Goal goal = null;
    Boolean objective = null;

    String key = null, format = null, description = null, fullName = null, low = null, high = null;
    Double significantGain = null, significantLoss = null, insignificantLoss = null;

    List<String> categoricalRange = null, categoricalPreference = null;

    reader.beginObject();

    while (reader.hasNext()) {
        String name = reader.nextName();

        if (name.equals(TYPE2)) {
            type = ColumnType.fromString(reader.nextString());
        } else if (name.equals(KEY)) {
            key = reader.nextString();
        } else if (name.equals(GOAL)) {
            goal = Goal.fromString(reader.nextString());
        } else if (name.equals(IS_OBJECTIVE)) {
            objective = reader.nextBoolean();
        } else if (name.equals(FORMAT)) {
            format = reader.nextString();
        } else if (name.equals(DESCRIPTION)) {
            description = reader.nextString();
        } else if (name.equals(FULL_NAME)) {
            fullName = reader.nextString();
        } else if (name.equals(SIGNIFICANT_GAIN)) {
            significantGain = reader.nextDouble();
        } else if (name.equals(SIGNIFICANT_LOSS)) {
            significantLoss = reader.nextDouble();
        } else if (name.equals(INSIGNIFICANT_LOSS)) {
            insignificantLoss = reader.nextDouble();
        } else if (name.equals("preference")) {
            reader.beginArray();
            categoricalPreference = new ArrayList<String>();
            while (reader.hasNext()) {
                categoricalPreference.add(reader.nextString());
            }
            reader.endArray();
        } else if (name.equals(RANGE)) {
            if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) {
                reader.beginArray();
                categoricalRange = new ArrayList<String>();
                while (reader.hasNext()) {
                    categoricalRange.add(reader.nextString());
                }
                reader.endArray();
            } else {
                reader.beginObject();
                while (reader.hasNext()) {
                    name = reader.nextName();
                    if (name.equals(LOW)) {
                        low = reader.nextString();
                    } else if (name.equals(HIGH)) {
                        high = reader.nextString();
                    } else {
                        reader.skipValue();
                    }
                }
                reader.endObject();
            }
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    Column column;
    if (type == ColumnType.CATEGORICAL) {
        column = new CategoricalColumn();
        if (categoricalRange != null) {
            ((CategoricalColumn) column).setRange(categoricalRange);
        }
        if (categoricalPreference != null) {
            ((CategoricalColumn) column).setRange(categoricalPreference);
        }
    } else if (type == ColumnType.DATETIME) {
        column = new DateColumn();
        if (low != null) {
            try {
                ((DateColumn) column).withRange(DATE_FORMATTER.parse(low), DATE_FORMATTER.parse(high));
            } catch (final ParseException e) {
                LOG.log(Level.SEVERE, "Error parsing the date", e);
            }
        }
    } else if (type == ColumnType.NUMERIC) {
        column = new NumericColumn();
        if (low != null) {
            ((NumericColumn) column).range(Double.valueOf(low), Double.valueOf(high));
        }
    } else {
        column = new TextColumn();
    }

    column.setKey(key);

    if (description != null) {
        column.setDescription(description);
    }

    if (format != null) {
        column.setFormat(format);
    }

    if (objective != null) {
        column.setObjective(objective);
    }

    if (fullName != null) {
        column.setFullName(fullName);
    }

    if (goal != null) {
        column.setGoal(goal);
    }

    if (key != null) {
        column.setKey(key);
    }

    if (significantGain != null) {
        column.setSignificantGain(significantGain);
    }

    if (significantLoss != null) {
        column.setSignificantLoss(insignificantLoss);
    }

    if (insignificantLoss != null) {
        column.setInsignificantLoss(insignificantLoss);
    }

    return column;
}

From source file:com.ibm.watson.discovery.v1.query.AggregationDeserializer.java

License:Open Source License

/**
 * Checks the next {@link JsonToken} to decide the next appropriate parsing method.
 *
 * @param in {@link JsonReader} object used for parsing
 * @param objMap Map used to build the structure for the resulting {@link QueryAggregation} object
 * @throws IOException signals that there has been an IO exception
 *//*from  ww  w  .java2  s .c o m*/
private void parseNext(JsonReader in, HashMap<String, Object> objMap) throws IOException {
    JsonToken token = in.peek();

    String lastName = "";
    if (token == JsonToken.NAME) {
        lastName = in.nextName();
        token = in.peek();
    }

    switch (token) {
    case BEGIN_ARRAY:
        parseArray(in, objMap, lastName);
        break;
    case BEGIN_OBJECT:
        parseObject(in, objMap, lastName);
        break;
    case STRING:
        objMap.put(lastName, in.nextString());
        break;
    case NUMBER:
        objMap.put(lastName, in.nextDouble());
        break;
    case BOOLEAN:
        objMap.put(lastName, in.nextBoolean());
        break;
    default:
        throw new IOException("Unexpected JSON token encountered");
    }

    collapseMap(objMap);
}

From source file:com.nridge.core.io.gson.DataFieldJSON.java

License:Open Source License

private void assignFieldNameValue(DataField aField, String aName, JsonReader aReader) throws IOException {
    if (StringUtils.equals(aName, IO.JSON_TITLE_MEMBER_NAME))
        aField.setTitle(aReader.nextString());
    else if (StringUtils.equals(aName, "displaySize"))
        aField.setDisplaySize(aReader.nextInt());
    else if (StringUtils.equals(aName, "defaultValue"))
        aField.setDefaultValue(aReader.nextString());
    else if (StringUtils.equals(aName, "sortOrder"))
        aField.setSortOrder(Field.Order.valueOf(aReader.nextString()));
    else if (StringUtils.equals(aName, "isMultiValue"))
        aField.setMultiValueFlag(aReader.nextBoolean());
    else if (StringUtils.equals(aName, IO.JSON_RANGE_OBJECT_NAME))
        aField.setRange(mRangeJSON.load(aReader));
    else if (StringUtils.equals(aName, IO.JSON_FEATURES_ARRAY_NAME)) {
        String jsonName, jsonValue;

        aReader.beginObject();/*from  w w  w. ja  va 2s . co m*/
        while (aReader.hasNext()) {
            jsonName = aReader.nextName();
            jsonValue = aReader.nextString();
            aField.addFeature(jsonName, jsonValue);
        }
        aReader.endObject();
    } else if (StringUtils.equals(aName, IO.JSON_VALUE_MEMBER_NAME)) {
        String jsonValue = aReader.nextString();
        if (aField.isMultiValue()) {
            String mvDelimiter = aField.getFeature(Field.FEATURE_MV_DELIMITER);
            if (StringUtils.isNotEmpty(mvDelimiter))
                aField.expand(jsonValue, mvDelimiter.charAt(0));
            else
                aField.expand(jsonValue);
        } else
            aField.setValue(jsonValue);
    }
}

From source file:com.nridge.core.io.gson.JSONDocument.java

License:Open Source License

/**
 * Parses an JSON stream and loads it into an internally managed
 * document instance.//from w w  w .  j a  va2s  .  c om
 *
 * @param aReader Json reader stream instance.
 *
 * @throws IOException I/O related exception.
 */
private void loadDocument(JsonReader aReader, Document aDocument) throws IOException {
    DataBag dataBag;
    JsonToken jsonToken;
    DataField dataField;
    String jsonName, jsonValue, jsonTitle;

    aReader.beginObject();

    jsonToken = aReader.peek();
    while (jsonToken == JsonToken.NAME) {
        jsonName = aReader.nextName();
        jsonTitle = Field.nameToTitle(jsonName);

        jsonToken = aReader.peek();
        switch (jsonToken) {
        case BOOLEAN:
            dataBag = aDocument.getBag();
            dataField = new DataField(jsonName, jsonTitle, aReader.nextBoolean());
            dataBag.add(dataField);
            break;
        case NUMBER:
            dataBag = aDocument.getBag();
            jsonValue = aReader.nextString();
            if (StringUtils.contains(jsonValue, StrUtl.CHAR_DOT))
                dataField = new DataField(jsonName, jsonTitle, Double.valueOf(jsonValue));
            else
                dataField = new DataField(jsonName, jsonTitle, Long.valueOf(jsonValue));
            dataBag.add(dataField);
            break;
        case STRING:
            dataBag = aDocument.getBag();
            jsonValue = aReader.nextString();
            Date dateValue = DatUtl.detectCreateDate(jsonValue);
            if (dateValue != null)
                dataField = new DataField(jsonName, jsonTitle, dateValue);
            else
                dataField = new DataField(Field.Type.Text, jsonName, jsonTitle, jsonValue);
            dataBag.add(dataField);
            break;
        case NULL:
            dataBag = aDocument.getBag();
            aReader.nextNull();
            dataField = new DataField(Field.Type.Text, jsonName, jsonTitle);
            dataBag.add(dataField);
            break;
        case BEGIN_ARRAY:
            aReader.beginArray();
            if (isNextTokenAnObject(aReader)) {
                Document childDocument = new Document(jsonTitle);
                childDocument.setName(jsonName);
                aDocument.addRelationship(jsonTitle, childDocument);
                loadDocumentArray(aReader, childDocument);
            } else {
                dataBag = aDocument.getBag();
                dataField = new DataField(Field.Type.Text, jsonName, jsonTitle);
                jsonToken = aReader.peek();
                while (jsonToken != JsonToken.END_ARRAY) {
                    jsonValue = aReader.nextString();
                    dataField.addValue(jsonValue);
                    jsonToken = aReader.peek();
                }
                dataBag.add(dataField);
            }
            aReader.endArray();
            break;
        case BEGIN_OBJECT:
            Document childDocument = new Document(jsonTitle);
            childDocument.setName(jsonName);
            aDocument.addRelationship(jsonTitle, childDocument);
            loadDocument(aReader, childDocument);
            break;
        default:
            aReader.skipValue();
            break;
        }
        jsonToken = aReader.peek();
    }

    aReader.endObject();
}

From source file:com.nridge.ds.solr.SolrConfigJSON.java

License:Open Source License

private String nextValueAsString(JsonReader aReader) throws IOException {
    String valueString = StringUtils.EMPTY;

    JsonToken jsonToken = aReader.peek();
    switch (jsonToken) {
    case BOOLEAN:
        valueString = StrUtl.booleanToString(aReader.nextBoolean());
        break;/*from  w  w  w.  ja v  a2s . com*/
    case NUMBER:
    case STRING:
        valueString = Solr.cleanContent(aReader.nextString());
        break;
    default:
        aReader.skipValue();
        break;
    }

    return valueString;
}