@Override public Map<String, Item> parse(JsonPullParser parser, OnJsonObjectAddListener listener) throws IOException, JsonFormatException { State state = parser.lookAhead(); if (state == State.VALUE_NULL) { return null; } Map<String, Item> resultMap = new HashMap<String, Item>(); state = parser.getEventType(); if (state != State.START_HASH) { throw new JsonFormatException("expected state is START_HASH, but get=" + state); } while ((state = parser.lookAhead()) != State.END_HASH) { state = parser.getEventType(); if (state != State.KEY) { throw new JsonFormatException("expected state is VALUE_STRING, but get=" + state); } String key = parser.getValueString(); Item item = ItemGenerated.get(parser, listener); resultMap.put(key, item); } parser.getEventType(); return resultMap; }