List of usage examples for com.fasterxml.jackson.core JsonToken END_OBJECT
JsonToken END_OBJECT
To view the source code for com.fasterxml.jackson.core JsonToken END_OBJECT.
Click Source Link
From source file:io.protostuff.JsonIOUtil.java
/** * Merges the {@code message} from the JsonParser using the given {@code schema}. */// w ww . j ava 2 s .c o m public static <T> void mergeFrom(JsonParser parser, T message, Schema<T> schema, boolean numeric) throws IOException { if (parser.nextToken() != JsonToken.START_OBJECT) { throw new JsonInputException("Expected token: { but was " + parser.getCurrentToken() + " on message " + schema.messageFullName()); } schema.mergeFrom(new JsonInput(parser, numeric), message); if (parser.getCurrentToken() != JsonToken.END_OBJECT) { throw new JsonInputException("Expected token: } but was " + parser.getCurrentToken() + " on message " + schema.messageFullName()); } }
From source file:com.entertailion.android.shapeways.MainActivity.java
private void getMaterials() { Log.d(LOG_TAG, "getMaterials"); try {//from w w w . j a v a2 s . co m HttpResponse httpResponse = ((ShapewaysApplication) getApplicationContext()).getShapewaysClient() .getResponse(ShapewaysClient.API_URL_BASE + ShapewaysClient.MATERIALS_PATH); String response = EntityUtils.toString(httpResponse.getEntity()); Log.i(LOG_TAG, "response=" + response); // http://wiki.fasterxml.com/JacksonInFiveMinutes ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = mapper.readValue(response, Map.class); Log.i(LOG_TAG, "map=" + map); // The response does not use array[] notation for the list of // materials. // So, have to manually parse the JSON to get the list data. MappingJsonFactory f = new MappingJsonFactory(); JsonParser jp = f.createJsonParser(response); Materials materials = new Materials(); materials.setStatusCode(httpResponse.getStatusLine().getStatusCode()); jp.nextToken(); // will return JsonToken.START_OBJECT (verify?) while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); Log.d(LOG_TAG, "fieldname=" + fieldname); jp.nextToken(); // move to value if ("materials".equals(fieldname)) { // contains an object // Material material = jp.readValueAs(Material.class); boolean end = false; do { Material material = new Material(); while (jp.nextToken() != JsonToken.END_OBJECT) { String namefield = jp.getCurrentName(); Log.d(LOG_TAG, "namefield=" + namefield); jp.nextToken(); // move to value if ("materialId".equals(namefield)) { material.setMaterialId(Integer.parseInt(jp.getText())); } else if ("title".equals(namefield)) { material.setTitle(jp.getText()); } else if ("supportsColorFiles".equals(namefield)) { material.setSupportsColorFiles(Integer.parseInt(jp.getText())); } else if ("printerId".equals(namefield)) { material.setPrinterId(jp.getText()); } else if ("swatch".equals(namefield)) { material.setSwatch(jp.getText()); } else { Log.w(LOG_TAG, "Unrecognized material field: " + namefield); } } materials.getMaterials().add(material); JsonToken token = jp.nextToken(); Log.d(LOG_TAG, "token=" + token); if (token == JsonToken.FIELD_NAME) { try { Integer.parseInt(jp.getCurrentName()); jp.nextToken(); } catch (Exception ex) { end = true; } } else if (token == JsonToken.END_OBJECT) { end = true; } } while (!end); } else if ("result".equals(fieldname)) { if (jp.getText().equals(Result.success.name())) { materials.setResult(Result.success); } else if (jp.getText().equals(Result.failure.name())) { materials.setResult(Result.failure); } } else { Log.w(LOG_TAG, "Unrecognized materials field: " + fieldname); } } jp.close(); // ensure resources get cleaned up timely and properly Log.i(LOG_TAG, "materials=" + materials.getMaterials().size()); Log.i(LOG_TAG, "material: id=" + materials.getMaterials().get(0).getMaterialId()); Log.i(LOG_TAG, "material: title=" + materials.getMaterials().get(0).getTitle()); Log.i(LOG_TAG, "material: swatch=" + materials.getMaterials().get(0).getSwatch()); } catch (Exception e) { Log.e(LOG_TAG, "getMaterials", e); } }
From source file:io.apiman.manager.api.exportimport.json.JsonImportReader.java
public void readPlanVersions() throws Exception { current = nextToken();//www .jav a 2 s . c o m if (current == JsonToken.END_ARRAY) { return; } while (nextToken() != JsonToken.END_ARRAY) { // Traverse each plan definition while (nextToken() != JsonToken.END_OBJECT) { if (jp.getCurrentName().equals(PlanVersionBean.class.getSimpleName())) { current = nextToken(); PlanVersionBean planBean = jp.readValueAs(PlanVersionBean.class); dispatcher.planVersion(planBean); } else { OrgElementsEnum fieldName = OrgElementsEnum.valueOf(jp.getCurrentName()); current = nextToken(); switch (fieldName) { case Policies: processEntities(PolicyBean.class, new EntityHandler<PolicyBean>() { @Override public void handleEntity(PolicyBean policy) throws Exception { dispatcher.planPolicy(policy); } }); break; default: throw new RuntimeException("Unhandled entity " + fieldName + " with token " + current); } } } } }
From source file:com.ntsync.shared.RequestGenerator.java
/** * //ww w.jav a 2 s . c om * @param key * @param clientId * @param response * @return * @throws HeaderParseException */ public static SyncResponse processServerResponse(SecretKey key, String clientId, final byte[] response) throws HeaderParseException { short version = SyncDataHelper.readShort(response, 0); SyncState syncState = null; Map<Long, String> newGroupIdMap = null; Map<Long, String> newContactIdMap = null; SyncAnchor newSyncAnchor = new SyncAnchor(); int skippedRows = 0; List<RawContact> serverContactList = new ArrayList<RawContact>(); List<ContactGroup> serverGroupList = new ArrayList<ContactGroup>(); String newClientId = clientId; Restrictions restr = null; if (version == RequestGenerator.PROT_VERSION) { int headerLength = SyncDataHelper.readInt(response, 2); JsonParser jp = null; try { jp = getJsonFactory().createParser(response, HEADER_POS, headerLength); jp.nextToken(); while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); // move to value, or START_OBJECT/START_ARRAY if (jp.nextToken() == null) { break; } if (CLIENT_FIELD_NAME.equals(fieldname)) { while (jp.nextToken() != JsonToken.END_OBJECT) { String clientField = jp.getCurrentName(); if (jp.nextToken() == null) { break; } if (PARAM_SYNC_ANCHOR.equals(clientField)) { while (jp.nextToken() != JsonToken.END_OBJECT) { String anchorType = jp.getCurrentName(); if (jp.nextToken() == null) { break; } long syncAnchor = jp.getLongValue(); if (anchorType != null && anchorType.length() > 0) { newSyncAnchor.setAnchor((byte) anchorType.charAt(0), syncAnchor); } } } else if (PARAM_CLIENTID.equals(clientField)) { newClientId = jp.getValueAsString(); } else if (TAG_GROUPIDS.equals(clientField)) { newGroupIdMap = extractNewIdList(jp); } else if (TAG_CONTACTIDS.equals(clientField)) { newContactIdMap = extractNewIdList(jp); } else { LOG.warn("Unsupported Client-Header-Field: {}", clientField); } } } else if (SERVER_FIELD_NAME.equals(fieldname)) { while (jp.nextToken() != JsonToken.END_OBJECT) { String serverField = jp.getCurrentName(); if (jp.nextToken() == null) { break; } if (RequestGenerator.SYNCSTATE_FIELD_NAME.equals(serverField)) { String syncStateStr = jp.getValueAsString(); if (syncStateStr != null && syncStateStr.length() > 0) { syncState = SyncState.fromErrorVal(syncStateStr); } } else if (RequestGenerator.TAG_SERVER_CONFIG.equals(serverField)) { restr = parseRestr(jp); } } } } final int respLen = response.length; if (respLen > headerLength + HEADER_POS) { skippedRows = getUpdatedRows(key, serverContactList, serverGroupList, response, headerLength, respLen); } } catch (UnsupportedEncodingException ex) { throw new RuntimeException(ex); } catch (JsonParseException ex) { throw new HeaderParseException(ex); } catch (IOException e) { throw new HeaderParseException(e); } finally { if (jp != null) { try { jp.close(); } catch (IOException ex) { LOG.warn("Could not close JSONParser", ex); } } } } return new SyncResponse(syncState, serverContactList, serverGroupList, newSyncAnchor, newClientId, newGroupIdMap, newContactIdMap, skippedRows, restr); }
From source file:com.bazaarvoice.jsonpps.PrettyPrintJson.java
private void copyCurrentStructure(JsonParser parser, ObjectMapper mapper, int depth, JsonGenerator generator) throws IOException { // Avoid using the mapper to parse the entire input until we absolutely must. This allows pretty // printing huge top-level arrays (that wouldn't fit in memory) containing smaller objects (that // individually do fit in memory) where the objects are printed with sorted keys. JsonToken t = parser.getCurrentToken(); if (t == null) { generator.copyCurrentStructure(parser); // Will report the error of a null token. return;// ww w . ja v a2s .co m } int id = t.id(); if (id == ID_FIELD_NAME) { if (depth > flatten) { generator.writeFieldName(parser.getCurrentName()); } t = parser.nextToken(); id = t.id(); } switch (id) { case ID_START_OBJECT: if (sortKeys && depth >= flatten) { // Load the entire object in memory so we can sort its keys and serialize it back out. mapper.writeValue(generator, parser.readValueAs(Map.class)); } else { // Don't load the whole object into memory. Copy it in a memory-efficient streaming fashion. if (depth >= flatten) { generator.writeStartObject(); } while (parser.nextToken() != JsonToken.END_OBJECT) { copyCurrentStructure(parser, mapper, depth + 1, generator); } if (depth >= flatten) { generator.writeEndObject(); } } break; case ID_START_ARRAY: // Don't load the whole array into memory. Copy it in a memory-efficient streaming fashion. if (depth >= flatten) { generator.writeStartArray(); } while (parser.nextToken() != JsonToken.END_ARRAY) { copyCurrentStructure(parser, mapper, depth + 1, generator); } if (depth >= flatten) { generator.writeEndArray(); } break; default: generator.copyCurrentEvent(parser); break; } }
From source file:com.sdl.odata.renderer.json.writer.JsonPropertyWriterTest.java
private Map<String, String> getJsonObject(JsonParser jsonParser) throws IOException { Map<String, String> map = new HashMap<>(); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String key = jsonParser.getText(); jsonParser.nextToken();/*from w ww . j ava 2 s . com*/ map.put(key, jsonParser.getText()); } return map; }
From source file:org.mongojack.internal.object.BsonObjectGenerator.java
@Override public void copyCurrentStructure(JsonParser jp) throws IOException { JsonToken t = jp.getCurrentToken();// ww w .j av a 2s .c om // Let'string handle field-name separately first if (t == JsonToken.FIELD_NAME) { writeFieldName(jp.getCurrentName()); t = jp.nextToken(); // fall-through to copy the associated value } switch (t) { case START_ARRAY: writeStartArray(); while (jp.nextToken() != JsonToken.END_ARRAY) { copyCurrentStructure(jp); } writeEndArray(); break; case START_OBJECT: writeStartObject(); while (jp.nextToken() != JsonToken.END_OBJECT) { copyCurrentStructure(jp); } writeEndObject(); break; default: // others are simple: copyCurrentEvent(jp); } }
From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java
@Override public Haplogroup parseHaplogroups(final InputStream inputStream) { checkNotNull(inputStream);/*from ww w . j av a 2 s .co m*/ JsonParser parser = null; try { parser = jsonFactory.createParser(inputStream); parser.nextToken(); String id = null; String maternal = null; String paternal = null; String rsid = null; String rcrsPosition = null; String snp = null; List<PaternalTerminalSnp> paternalTerminalSnps = new ArrayList<PaternalTerminalSnp>(); List<MaternalTerminalSnp> maternalTerminalSnps = new ArrayList<MaternalTerminalSnp>(); while (parser.nextToken() != JsonToken.END_OBJECT) { String field = parser.getCurrentName(); parser.nextToken(); if ("id".equals(field)) { id = parser.getText(); } else if ("maternal".equals(field)) { maternal = parser.getText(); } else if ("paternal".equals(field)) { paternal = "null" == parser.getText() ? null : parser.getText(); } else if ("maternal_terminal_snps".equals(field)) { while (parser.nextToken() != JsonToken.END_ARRAY) { while (parser.nextToken() != JsonToken.END_OBJECT) { String maternalTerminalSnpsField = parser.getCurrentName(); parser.nextToken(); if ("rsid".equals(maternalTerminalSnpsField)) { rsid = parser.getText(); } else if ("rcrs_position".equals(maternalTerminalSnpsField)) { rcrsPosition = parser.getText(); } } maternalTerminalSnps.add(new MaternalTerminalSnp(rsid, rcrsPosition)); } } else if ("paternal_terminal_snps".equals(field)) { while (parser.nextToken() != JsonToken.END_ARRAY) { while (parser.nextToken() != JsonToken.END_OBJECT) { String paternalTerminalSnpsField = parser.getCurrentName(); parser.nextToken(); if ("rsid".equals(paternalTerminalSnpsField)) { rsid = parser.getText(); } else if ("snp".equals(paternalTerminalSnpsField)) { snp = parser.getText(); } } paternalTerminalSnps.add(new PaternalTerminalSnp(rsid, snp)); } } } return new Haplogroup(id, paternal, maternal, paternalTerminalSnps, maternalTerminalSnps); } catch (IOException e) { logger.warn("could not parse haplogroups", e); } finally { try { inputStream.close(); } catch (Exception e) { // ignored } try { parser.close(); } catch (Exception e) { // ignored } } return null; }
From source file:io.syndesis.jsondb.impl.SqlJsonDB.java
@Override public void update(String path, InputStream is) { ArrayList<String> updatePaths = new ArrayList<>(); withTransaction(dbi -> {/* w ww .ja va2s . co m*/ try { BatchManager mb = new BatchManager(dbi); try (JsonParser jp = new JsonFactory().createParser(is)) { JsonToken nextToken = jp.nextToken(); if (nextToken != JsonToken.START_OBJECT) { throw new JsonParseException(jp, "Update did not contain a json object"); } while (true) { nextToken = jp.nextToken(); if (nextToken == JsonToken.END_OBJECT) { break; } if (nextToken != JsonToken.FIELD_NAME) { throw new JsonParseException(jp, "Expected a field name"); } String key = Strings.suffix(path, "/") + jp.getCurrentName(); updatePaths.add(key); String baseDBPath = JsonRecordSupport.convertToDBPath(key); mb.deleteRecordsForSet(baseDBPath); try { JsonRecordSupport.jsonStreamToRecords(jp, baseDBPath, mb.createSetConsumer()); } catch (IOException e) { throw new JsonDBException(e); } } nextToken = jp.nextToken(); if (nextToken != null) { throw new JsonParseException(jp, "Document did not terminate as expected."); } mb.flush(); } } catch (IOException e) { throw new JsonDBException(e); } }); if (bus != null) { for (String updatePath : updatePaths) { bus.broadcast("jsondb-updated", Strings.prefix(Strings.trimSuffix(updatePath, "/"), "/")); } } }
From source file:org.apache.manifoldcf.agents.output.amazoncloudsearch.AmazonCloudSearchConnector.java
private String getStatusFromJsonResponse(String responsbody) throws ManifoldCFException { try {/* w w w . j a v a 2 s . co m*/ JsonParser parser = new JsonFactory().createJsonParser(responsbody); while (parser.nextToken() != JsonToken.END_OBJECT) { String name = parser.getCurrentName(); if ("status".equalsIgnoreCase(name)) { parser.nextToken(); return parser.getText(); } } } catch (JsonParseException e) { throw new ManifoldCFException(e); } catch (IOException e) { throw new ManifoldCFException(e); } return null; }