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

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

Introduction

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

Prototype

public void endArray() throws IOException 

Source Link

Document

Consumes the next token from the JSON stream and asserts that it is the end of the current array.

Usage

From source file:eu.jtzipi.project0.common.json.impl.GsonReadWrite.java

License:Apache License

static Map<String, Object> parseObject(final JsonReader jsonReader) throws IOException {

    Map<String, Object> map = new HashMap<>();
    String tempKey;/*from  ww  w  . ja  v  a 2 s .  c om*/
    JsonToken tok;
    //
    while (jsonReader.hasNext()) {

        // since we want to restore a map we assue a key/value pair
        tempKey = jsonReader.nextName();
        //
        tok = jsonReader.peek();
        // we reach the end of this array
        if (JsonToken.END_ARRAY == tok) {
            jsonReader.endArray();
            // return
            break;
        }
        // what token
        switch (tok) {
        // if array/map - parse and append
        case BEGIN_ARRAY:
            map.put(tempKey, parseArray(jsonReader));
            break;
        case BEGIN_OBJECT:
            map.put(tempKey, parseObject(jsonReader));
            break;
        // if raw type
        case STRING:
            map.put(tempKey, jsonReader.nextString());
            break;
        case BOOLEAN:
            map.put(tempKey, jsonReader.nextBoolean());
            break;
        case NUMBER:
            map.put(tempKey, jsonReader.nextDouble());
            break;
        // if null , add null and consume
        case NULL:
            map.put(tempKey, null);
            jsonReader.nextNull();
            break;

        // all other cases are errors
        default:
            throw new IllegalStateException("Wrong Token '" + tok + "' , while parsing an array");
        }
    }

    return map;
}

From source file:guru.qas.martini.report.DefaultTraceabilityMatrix.java

License:Apache License

@Override
public void createReport(JsonReader reader, OutputStream outputStream) throws IOException {
    checkNotNull(reader, "null JsonReader");
    checkNotNull(outputStream, "null OutputStream");

    Workbook workbook = new XSSFWorkbook();
    Sheet sheet = workbook.createSheet("Results");
    addHeader(sheet);// w  w  w  .  ja  v  a  2  s  .c  o  m

    State state = new DefaultState();
    while (reader.hasNext()) {
        JsonToken peek = reader.peek();

        JsonObject object;
        switch (peek) {
        case BEGIN_ARRAY:
            reader.beginArray();
            continue;
        case BEGIN_OBJECT:
            object = gson.fromJson(reader, JsonObject.class);
            break;
        case END_ARRAY:
            reader.endArray();
            continue;
        case END_DOCUMENT:
            reader.skipValue();
            continue;
        default:
            JsonElement element = gson.fromJson(reader, JsonElement.class);
            LOGGER.warn("skipping unhandled element {}", element);
            continue;
        }

        switch (JsonObjectType.evaluate(object)) {
        case SUITE:
            JsonObject suite = SUITE.get(object);
            state.addSuite(suite);
            break;
        case FEATURE:
            JsonObject feature = FEATURE.get(object);
            state.addFeature(feature);
            break;
        case RESULT:
            JsonObject result = RESULT.get(object);
            addResult(state, sheet, result);
            break;
        default:
            LOGGER.warn("skipping unrecognized JsonObject: {}", object);
        }
    }

    state.updateResults();
    resizeColumns(sheet);

    Sheet suiteSheet = workbook.createSheet("Suites");
    state.updateSuites(suiteSheet);

    workbook.write(outputStream);
    outputStream.flush();
}

From source file:io.github.rcarlosdasilva.weixin.core.json.adapter.OpenPlatformAuthGetLicenseInformationResponseTypeAdapter.java

private void readLicensedAccessToken(JsonReader in, OpenPlatformAuthGetLicenseInformationResponse model)
        throws IOException {
    LicensingInformation licensingInformation = new LicensingInformation();
    in.beginObject();//from w w  w.j a  v a 2  s  .  c o  m

    while (in.hasNext()) {
        String key = in.nextName();
        switch (key) {
        case Convention.OPEN_PLATFORM_AUTH_LICENSED_APPID_ALIAS_KEY:
        case Convention.OPEN_PLATFORM_AUTH_LICENSED_APPID_KEY:
            licensingInformation.setAppId(in.nextString());
            break;
        case Convention.OPEN_PLATFORM_AUTH_LICENSED_ACCESS_TOKEN_KEY:
            model.getLicensedAccessToken().setAccessToken(in.nextString());
            break;
        case Convention.OPEN_PLATFORM_AUTH_LICENSED_ACCESS_TOKEN_EXPIRES_IN_KEY:
            model.getLicensedAccessToken().setExpiresIn(in.nextInt());
            break;
        case Convention.OPEN_PLATFORM_AUTH_LICENSED_REFRESH_TOKEN_KEY:
            model.getLicensedAccessToken().setRefreshToken(in.nextString());
            break;
        case Convention.OPEN_PLATFORM_AUTH_LICENSED_FUNCTIONS_INFO_KEY: {
            in.beginArray();

            while (in.hasNext()) {
                in.beginObject();
                in.nextName();
                in.beginObject();
                in.nextName();
                licensingInformation.addLicencedFunction(in.nextInt());
                in.endObject();
                in.endObject();
            }

            in.endArray();
            break;
        }
        default:
            if (in.hasNext()) {
                String value = in.nextString();
                logger.warn(LOG_UNKNOWN_JSON_KEY, key, value);
            }
        }
    }

    in.endObject();
    model.setLicensingInformation(licensingInformation);
}

From source file:io.grpc.internal.JsonParser.java

License:Apache License

private static List<?> parseJsonArray(JsonReader jr) throws IOException {
    jr.beginArray();//  w w w  .  j  av  a 2 s  . co  m
    List<Object> array = new ArrayList<>();
    while (jr.hasNext()) {
        Object value = parseRecursive(jr);
        array.add(value);
    }
    checkState(jr.peek() == JsonToken.END_ARRAY, "Bad token: " + jr.getPath());
    jr.endArray();
    return Collections.unmodifiableList(array);
}

From source file:it.bradipao.berengar.DbTool.java

License:Apache License

public static int gson2db(SQLiteDatabase mDB, File jsonFile) {

    // vars//  w  w w  .  ja  va  2 s .  c  o  m
    int iTableNum = 0;
    FileReader fr = null;
    BufferedReader br = null;
    JsonReader jr = null;
    String name = null;
    String val = null;

    String mTable = null;
    String mTableSql = null;
    ArrayList<String> aFields = null;
    ArrayList<String> aValues = null;
    ContentValues cv = null;

    // file readers
    try {
        fr = new FileReader(jsonFile);
        br = new BufferedReader(fr);
        jr = new JsonReader(br);
    } catch (FileNotFoundException e) {
        Log.e(LOGTAG, "error in gson2db file readers", e);
    }

    // parsing
    try {
        // start database transaction
        mDB.beginTransaction();
        // open root {
        jr.beginObject();
        // iterate through root objects
        while (jr.hasNext()) {
            name = jr.nextName();
            if (jr.peek() == JsonToken.NULL)
                jr.skipValue();
            // number of tables
            else if (name.equals("tables_num")) {
                val = jr.nextString();
                iTableNum = Integer.parseInt(val);
                if (GOLOG)
                    Log.d(LOGTAG, "TABLE NUM : " + iTableNum);
            }
            // iterate through tables array
            else if (name.equals("tables")) {
                jr.beginArray();
                while (jr.hasNext()) {
                    // start table
                    mTable = null;
                    aFields = null;
                    jr.beginObject();
                    while (jr.hasNext()) {
                        name = jr.nextName();
                        if (jr.peek() == JsonToken.NULL)
                            jr.skipValue();
                        // table name
                        else if (name.equals("table_name")) {
                            mTable = jr.nextString();
                        }
                        // table sql
                        else if (name.equals("table_sql")) {
                            mTableSql = jr.nextString();
                            if ((mTable != null) && (mTableSql != null)) {
                                mDB.execSQL("DROP TABLE IF EXISTS " + mTable);
                                mDB.execSQL(mTableSql);
                                if (GOLOG)
                                    Log.d(LOGTAG, "DROPPED AND CREATED TABLE : " + mTable);
                            }
                        }
                        // iterate through columns name
                        else if (name.equals("cols_name")) {
                            jr.beginArray();
                            while (jr.hasNext()) {
                                val = jr.nextString();
                                if (aFields == null)
                                    aFields = new ArrayList<String>();
                                aFields.add(val);
                            }
                            jr.endArray();
                            if (GOLOG)
                                Log.d(LOGTAG, "COLUMN NAME : " + aFields.toString());
                        }
                        // iterate through rows
                        else if (name.equals("rows")) {
                            jr.beginArray();
                            while (jr.hasNext()) {
                                jr.beginArray();
                                // iterate through values in row
                                aValues = null;
                                cv = null;
                                while (jr.hasNext()) {
                                    val = jr.nextString();
                                    if (aValues == null)
                                        aValues = new ArrayList<String>();
                                    aValues.add(val);
                                }
                                jr.endArray();
                                // add to database
                                cv = new ContentValues();
                                for (int j = 0; j < aFields.size(); j++)
                                    cv.put(aFields.get(j), aValues.get(j));
                                mDB.insert(mTable, null, cv);
                                if (GOLOG)
                                    Log.d(LOGTAG, "INSERT IN " + mTable + " : " + aValues.toString());
                            }
                            jr.endArray();
                        } else
                            jr.skipValue();
                    }
                    // end table
                    jr.endObject();
                }
                jr.endArray();
            } else
                jr.skipValue();
        }
        // close root }
        jr.endObject();
        jr.close();
        // successfull transaction
        mDB.setTransactionSuccessful();
    } catch (IOException e) {
        Log.e(LOGTAG, "error in gson2db gson parsing", e);
    } finally {
        mDB.endTransaction();
    }

    return iTableNum;
}

From source file:json_export_import.GSON_Observer.java

public void read() {
    try {// w w  w.j a v  a  2 s  .co m
        JsonReader reader = new JsonReader(new FileReader("/home/rgreim/Output.json"));
        reader.beginArray();
        while (reader.hasNext()) {
            String sequence = reader.nextString();
            System.out.println("Sequenz: " + sequence);
        }
        reader.endArray();
        reader.close();
    } catch (FileNotFoundException ex) {
        Logger.getLogger(GSON_Observer.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(GSON_Observer.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:kihira.minicreatures.MiniCreatures.java

License:Open Source License

@SuppressWarnings("ResultOfMethodCallIgnored")
private void loadPersonalityTypes(File configDir) {
    File personalityTypesFile = new File(configDir,
            File.separator + "MiniCreatures" + File.separator + "PersonalityTypes.json");

    try {//  w ww  .j  a  v a  2 s . c o m
        Gson gson = GsonHelper.createGson(Mood.class);
        if (!personalityTypesFile.exists()) {
            //Create files/directories
            new File(configDir, File.separator + "MiniCreatures").mkdirs();
            personalityTypesFile.createNewFile();

            JsonWriter jsonWriter = new JsonWriter(new FileWriter(personalityTypesFile));

            //TODO just copy a pre-genned file like marker beacons
            //Create defaults
            //Create default personalities
            jsonWriter.beginArray();
            List<String> list = new ArrayList<String>();
            list.add(EntityMiniPlayer.class.getName());
            gson.toJson(gson.toJsonTree(new Mood("psychotic", list, new HashMap<String, MoodVariable>() {
                {
                    put("happiness", new MoodVariable(35, 50));
                    put("hostility", new MoodVariable(40, 50));
                }
            })), jsonWriter);
            gson.toJson(gson.toJsonTree(new Mood("coldblooded", list, new HashMap<String, MoodVariable>() {
                {
                    put("happiness", new MoodVariable(-50, 0));
                    put("hostility", new MoodVariable(40, 50));
                }
            })), jsonWriter);
            gson.toJson(gson.toJsonTree(new Mood("happy", list, new HashMap<String, MoodVariable>() {
                {
                    put("happiness", new MoodVariable(10, 50));
                    put("hostility", new MoodVariable(-50, 10));
                }
            })), jsonWriter);
            gson.toJson(gson.toJsonTree(new Mood("depressed", list, new HashMap<String, MoodVariable>() {
                {
                    put("happiness", new MoodVariable(-50, 0));
                    put("hostility", new MoodVariable(-10, 10));
                }
            })), jsonWriter);
            gson.toJson(gson.toJsonTree(new MoodTest("test")), jsonWriter);
            jsonWriter.endArray();
            jsonWriter.close();
        }

        //Load personality types
        JsonReader reader = new JsonReader(new FileReader(personalityTypesFile));
        reader.beginArray();
        while (reader.hasNext()) {
            Mood mood = gson.fromJson(reader, Mood.class);
            Personality.moodList.add(mood);
            logger.debug("Loaded mood %s", mood.toString());
        }
        reader.endArray();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}

From source file:me.ixfan.wechatkit.message.out.json.MassMessageGsonTypeAdapter.java

License:Open Source License

@Override
public MessageForMassSend read(JsonReader in) throws IOException {
    MessageForMassSend.Filter filter = null;
    List<String> toUser = null;
    String msgType = null;/*from  w  w w .  j  a v a2s . c  o m*/
    String msgContent = null;

    in.beginObject();
    while (in.hasNext()) {
        switch (in.nextName()) {
        case "msgtype":
            msgType = in.nextString();
            break;
        case "filter":
            in.beginObject();
            String tagId = null;
            boolean isToAll = false;
            while (in.hasNext()) {
                switch (in.nextName()) {
                case "is_to_all":
                    isToAll = in.nextBoolean();
                    break;
                case "tag_id":
                    tagId = in.nextString();
                    break;
                default:
                    break;
                }
            }
            in.endObject();
            filter = new MessageForMassSend.Filter(tagId, isToAll);
            break;
        case "touser":
            in.beginArray();
            toUser = new ArrayList<>();
            while (in.hasNext()) {
                toUser.add(in.nextString());
            }
            in.endArray();
            break;
        case "text":
        case "image":
        case "voice":
        case "mpnews":
        case "mpvideo":
        case "wxcard":
            in.beginObject();
            while (in.hasNext()) {
                switch (in.nextName()) {
                case "content":
                case "media_id":
                case "card_id":
                    msgContent = in.nextString();
                    break;
                default:
                    break;
                }
            }
            in.endObject();
            break;
        default:
            break;
        }
    }

    in.endObject();

    if (null != filter) {
        return new MessageForMassSend(OutMessageType.valueOf(msgType), msgContent, filter.getTagId(),
                filter.isToAll());
    } else if (null != toUser) {
        return new MessageForMassSend(OutMessageType.valueOf(msgType), msgContent, toUser);
    }
    return null;
}

From source file:me.j360.trace.core.internal.JsonCodec.java

License:Apache License

public List<List<Span>> readTraces(byte[] bytes) {
    JsonReader reader = jsonReader(bytes);
    List<List<Span>> result = new LinkedList<List<Span>>(); // cause we don't know how long it will be
    try {//from  www .  j a  v  a2 s .c o  m
        reader.beginArray();
        while (reader.hasNext()) {
            reader.beginArray();
            List<Span> trace = new LinkedList<Span>(); // cause we don't know how long it will be
            while (reader.hasNext()) {
                trace.add(SPAN_ADAPTER.fromJson(reader));
            }
            reader.endArray();
            result.add(trace);
        }
        reader.endArray();
        return result;
    } catch (Exception e) {
        throw exceptionReading("List<List<Span>>", bytes, e);
    }
}

From source file:me.j360.trace.core.internal.JsonCodec.java

License:Apache License

static <T> List<T> readList(JsonAdapter<T> adapter, byte[] bytes) {
    JsonReader reader = jsonReader(bytes);
    List<T> result;//from www.j ava2s  .  c  o m
    try {
        reader.beginArray();
        if (reader.hasNext()) {
            result = new LinkedList<T>(); // cause we don't know how long it will be
        } else {
            result = Collections.emptyList();
        }
        while (reader.hasNext()) {
            result.add(adapter.fromJson(reader));
        }
        reader.endArray();
        return result;
    } catch (Exception e) {
        throw exceptionReading("List<" + adapter + ">", bytes, e);
    }
}