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

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

Introduction

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

Prototype

public final void setLenient(boolean lenient) 

Source Link

Document

Configure this parser to be liberal in what it accepts.

Usage

From source file:com.seagate.kinetic.simulator.heartbeat.SampleHeartbeatListener.java

License:Open Source License

@Override
public void onMessage(byte[] data) {

    try {/*  w  ww  .j  a  v  a 2s .  c o m*/

        String message = new String(data, "UTF8");

        JsonReader reader = new JsonReader(new StringReader(message));
        reader.setLenient(true);

        // pretty print use this
        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        // normal print, use this
        // Gson gson = new Gson();

        HeartbeatMessage hbm = gson.fromJson(reader, HeartbeatMessage.class);

        String jsonOutput = gson.toJson(hbm);

        logger.info("received heart beat: " + jsonOutput);

    } catch (Exception e) {
        logger.log(Level.WARNING, e.getMessage(), e);
    }

}

From source file:com.smartdengg.httpservice.lib.converter.GsonResponseBodyConverter.java

License:Apache License

@Override
public T convert(ResponseBody value) throws IOException {

    BufferedSource source = null;//  w  w  w.  j  ava2  s. c om
    InputStreamReader reader = null;
    JsonReader jsonReader = null;

    try {
        if (HttpService.enableResponseLog() && enable) {
            source = value.source();
            source.request(Long.MAX_VALUE);
            Buffer buffer = source.buffer();

            Charset charset = UTF8;
            MediaType contentType = value.contentType();
            if (contentType != null) {
                charset = contentType.charset(UTF8);
            }

            if (value.contentLength() != 0) {
                JsonPrinter.json(buffer.clone().readString(charset));
            }
            reader = new InputStreamReader(Okio.buffer(source).inputStream(), charset);
            return getT(reader);
        } else {
            jsonReader = gson.newJsonReader(value.charStream());
            jsonReader.setLenient(true);
            return adapter.read(jsonReader);
        }
    } finally {
        Util.closeQuietly(source);
        Util.closeQuietly(reader);
        Util.closeQuietly(jsonReader);
        Util.closeQuietly(value);
    }
}

From source file:com.smartdengg.httpservice.lib.converter.GsonResponseBodyConverter.java

License:Apache License

private T getT(InputStreamReader reader) throws IOException {
    JsonReader jsonReader = gson.newJsonReader(reader);
    jsonReader.setLenient(true);
    return adapter.read(jsonReader);
}

From source file:com.solidfire.jsvcgen.client.ServiceBase.java

License:Open Source License

/**
 * Decodes the JSON-RPC response.//from w  ww  . j  a v a 2  s  .  co m
 *
 * @param response          the JSON encoded response
 * @param resultParamsClass the class (type) of the result object returned
 * @return the result (response) object
 */
protected <TResult> TResult decodeResponse(String response, Class<TResult> resultParamsClass) {
    log.debug("Response: {}", response);

    final Gson gson = getGsonBuilder().create();

    try {
        final JsonReader reader = new JsonReader(new StringReader(response));

        reader.setLenient(true);

        final JsonObject resultObj = gson.fromJson(reader, JsonObject.class);

        checkForError(resultObj);

        TResult result = gson.fromJson(resultObj.get("result"), resultParamsClass);

        OptionalAdaptorUtils.initializeAllNullOptionalFieldsAsEmpty(result);
        ArrayAdaptorUtils.convertAllArrayListsToArrays(result);

        return result;
    } catch (ClassCastException e) {
        final Pattern pattern = Pattern.compile("<p> (.*?)</p>");
        final Matcher matcher = pattern.matcher(response);
        if (matcher.find()) {
            throw new ApiServerException("Not Found", "404", matcher.group(1));
        }
        throw new ApiException(
                format("There was a problem parsing the response from the server. ( response=%s )", response),
                e);
    } catch (NullPointerException | JsonParseException e) {
        log.debug(response);
        throw new ApiException(
                format("There was a problem parsing the response from the server. ( response=%s )", response),
                e);

    }
}

From source file:com.thebluealliance.androidclient.datafeed.retrofit.LenientGsonConverter.java

License:Apache License

@Override
public T fromBody(ResponseBody body) throws IOException {
    Reader in = body.charStream();

    try {//  w w w .jav a 2 s.  c o  m
        JsonReader reader = new JsonReader(in);
        reader.setLenient(true);
        return typeAdapter.read(reader);
    } finally {
        try {
            in.close();
        } catch (IOException ignored) {
        }
    }
}

From source file:data.DataGetterActGoogle.java

@Override
public double readActualData(String tickerSymbol) {
    try {//  w  w  w.ja v  a 2 s.c  o m
        StringBuilder urlBuilder = new StringBuilder();

        urlBuilder.append("http://finance.google.com/finance/info?client=ig&q=");

        urlBuilder.append(tickerSymbol);

        URL urlGoogle = new URL(urlBuilder.toString());
        DataGSON[] entryArray;
        try (BufferedReader in = new BufferedReader(new InputStreamReader(urlGoogle.openStream()))) {
            in.skip(3);
            Gson gson = new GsonBuilder().create();
            JsonReader reader = new JsonReader(in);
            reader.setLenient(true);
            entryArray = gson.fromJson(reader, DataGSON[].class);
        }

        return Double.parseDouble(entryArray[0].l.replaceAll(",", ""));

    } catch (IOException | NumberFormatException ex) {
        logger.warning("Failed to load actual data from google at once. Exception: " + ex.getMessage());
        return 0;
    }
}

From source file:data.DataGetterActGoogle.java

@Override
public Map<String, Double> readActualData(String[] tickerSymbols) {
    try {//from  ww w  . j  a v a  2s .co  m
        StringBuilder urlBuilder = new StringBuilder();

        urlBuilder.append("http://finance.google.com/finance/info?client=ig&q=");

        for (String tickerSymbol : tickerSymbols) {
            urlBuilder.append(tickerSymbol);
            urlBuilder.append(",");
        }
        urlBuilder.deleteCharAt(urlBuilder.length() - 1); //remove last ,

        URL urlGoogle = new URL(urlBuilder.toString());
        DataGSON[] dataFromGSON;
        try (BufferedReader in = new BufferedReader(new InputStreamReader(urlGoogle.openStream()))) {
            in.skip(3);
            Gson gson = new GsonBuilder().create();
            JsonReader reader = new JsonReader(in);
            reader.setLenient(true);
            dataFromGSON = gson.fromJson(reader, DataGSON[].class);
        }

        Map<String, Double> valuesMap = new HashMap<>(dataFromGSON.length);

        for (DataGSON entryGSON : dataFromGSON) {
            String tickerSymbol = entryGSON.t;
            String strValue = entryGSON.l.replaceAll(",", "");
            valuesMap.put(tickerSymbol, Double.parseDouble(strValue));
        }

        return valuesMap;

    } catch (IOException | NumberFormatException ex) {
        logger.warning("Failed to load actual data from google at once. Exception: " + ex.getMessage());
        return null;
    }
}

From source file:data.GoogleActDataGetter.java

public double readActualData(String tickerSymbol) throws IOException, NumberFormatException {
    StringBuilder urlBuilder = new StringBuilder();

    urlBuilder.append("http://finance.google.com/finance/info?client=ig&q=");

    urlBuilder.append(tickerSymbol);/*from  w w w .  ja v  a  2  s. c  om*/

    URL urlGoogle = new URL(urlBuilder.toString());
    BufferedReader in = new BufferedReader(new InputStreamReader(urlGoogle.openStream()));

    in.skip(3);

    Gson gson = new GsonBuilder().create();
    JsonReader reader = new JsonReader(in);
    reader.setLenient(true);
    DataGSON[] p = gson.fromJson(reader, DataGSON[].class);

    in.close();

    return Double.parseDouble(p[0].l.replaceAll(",", ""));
}

From source file:data.GoogleActDataGetter.java

public Map<String, Double> readActualData(String[] tickerSymbols) throws IOException, NumberFormatException {
    StringBuilder urlBuilder = new StringBuilder();

    urlBuilder.append("http://finance.google.com/finance/info?client=ig&q=");

    for (String tickerSymbol : tickerSymbols) {
        urlBuilder.append(tickerSymbol);
        urlBuilder.append(",");
    }//w  w  w  .j  a v  a  2  s. c o  m
    urlBuilder.deleteCharAt(urlBuilder.length() - 1); //remove last ,

    URL urlGoogle = new URL(urlBuilder.toString());
    BufferedReader in = new BufferedReader(new InputStreamReader(urlGoogle.openStream()));

    in.skip(3);

    Gson gson = new GsonBuilder().create();
    JsonReader reader = new JsonReader(in);
    reader.setLenient(true);
    DataGSON[] dataFromGSON = gson.fromJson(reader, DataGSON[].class);

    in.close();

    Map<String, Double> valuesMap;
    valuesMap = new HashMap(dataFromGSON.length);

    for (DataGSON entryGSON : dataFromGSON) {
        String tickerSymbol = entryGSON.t;
        String strValue = entryGSON.l.replaceAll(",", "");
        valuesMap.put(tickerSymbol, Double.parseDouble(strValue));
    }

    return valuesMap;
}

From source file:data.TaskADataParser.java

License:Apache License

/**
 * // w  w  w .j a  v  a2 s  .c om
 * Return a json reader and opens the array
 * 
 */
public static JsonReader streamParser(String jsonFile) throws IOException {

    int count = 0;
    int abstract_count = 0;
    int duplicates = 0;
    JsonReader reader = null;
    try {
        reader = new JsonReader(new InputStreamReader(new FileInputStream(jsonFile)));
        reader.setLenient(true);
        reader.beginObject();
        String nam = reader.nextName();
        System.out.println(nam);
        reader.beginArray();

    } catch (Exception ex) {
        System.out.println("File not found");
        System.out.println(ex.toString());
    }
    return reader;
}