List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:com.entertailion.android.shapeways.MainActivity.java
private void getMaterials() { Log.d(LOG_TAG, "getMaterials"); try {/* w w w . ja v a2s. 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:com.netflix.hollow.jsonadapter.HollowJsonAdapter.java
private void skipSubArray(JsonParser parser) throws IOException { JsonToken token = parser.nextToken(); while (token != JsonToken.END_ARRAY) { if (token == JsonToken.START_OBJECT) { skipObject(parser);// w w w . j a v a2 s.c om } else { skipObjectField(parser, token); } token = parser.nextToken(); } }
From source file:com.adobe.communities.ugc.migration.importer.ImportFileUploadServlet.java
protected void doPut(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { final String path = request.getRequestParameter("path").getString(); final ResourceResolver resolver = request.getResourceResolver(); UGCImportHelper.checkUserPrivileges(resolver, rrf); final Resource resource = resolver.getResource(path); if (resource == null) { throw new ServletException("Could not find a valid resource for import"); }/* ww w . j a v a2s. co m*/ final String filePath = request.getRequestParameter("filePath").getString(); if (!filePath.startsWith(ImportFileUploadServlet.UPLOAD_DIR)) { throw new ServletException("Path to file resource lies outside migration import path"); } final Resource fileResource = resolver.getResource(filePath); if (fileResource == null) { throw new ServletException("Could not find a valid file resource to read"); } // get the input stream from the file resource Resource file = fileResource.getChild("file"); if (null != file && !(file instanceof NonExistingResource)) { file = file.getChild(JcrConstants.JCR_CONTENT); if (null != file && !(file instanceof NonExistingResource)) { final ValueMap contentVM = file.getValueMap(); InputStream inputStream = (InputStream) contentVM.get(JcrConstants.JCR_DATA); if (inputStream != null) { final JsonParser jsonParser = new JsonFactory().createParser(inputStream); jsonParser.nextToken(); // get the first token importFile(jsonParser, resource, resolver); deleteResource(fileResource); return; } } } throw new ServletException("Unable to read file in provided file resource path"); }
From source file:io.pdef.json.JsonJacksonFormat.java
private List<?> readArray(final JsonParser parser) throws IOException { JsonToken current = parser.getCurrentToken(); if (current != JsonToken.START_ARRAY) { throw new JsonFormatException("Bad JSON string, failed to read an array"); }//from ww w .j a va 2 s . c o m List<Object> list = new ArrayList<Object>(); while (true) { JsonToken next = parser.nextToken(); if (next == null) { throw new JsonFormatException("End of file"); } else if (next == JsonToken.END_ARRAY) { break; } Object element = read(parser); list.add(element); } return list; }
From source file:org.helm.notation2.wsadapter.MonomerWSLoader.java
/** * Private routine to deserialize a JSON containing attachment data. This is * done manually to give more freedom regarding data returned by the * webservice./* w w w . ja v a2s . c o m*/ * * @param parser the JSONParser containing JSONData. * @param attachmentDB the attachments stored in the Toolkit * @return List containing attachments * * @throws JsonParseException * @throws IOException */ private List<Attachment> deserializeAttachmentList(JsonParser parser, Map<String, Attachment> attachmentDB) throws JsonParseException, IOException { List<Attachment> attachments = new ArrayList<Attachment>(); Attachment currentAttachment = null; while (!JsonToken.END_ARRAY.equals(parser.nextToken())) { String fieldName = parser.getCurrentName(); JsonToken token = parser.getCurrentToken(); if (JsonToken.START_OBJECT.equals(token)) { currentAttachment = new Attachment(); } else if (JsonToken.END_OBJECT.equals(token)) { currentAttachment.setCapGroupSMILES( attachmentDB.get(currentAttachment.getAlternateId()).getCapGroupSMILES()); attachments.add(currentAttachment); } if (fieldName != null) { switch (fieldName) { case "id": parser.nextToken(); currentAttachment.setId(Integer.parseInt(parser.getText())); break; case "alternateId": parser.nextToken(); currentAttachment.setAlternateId(parser.getText()); break; case "label": parser.nextToken(); currentAttachment.setLabel(parser.getText()); break; case "capGroupName": parser.nextToken(); currentAttachment.setCapGroupName(parser.getText()); break; case "capGroupSMILES": parser.nextToken(); currentAttachment.setCapGroupSMILES(parser.getText()); break; default: break; } } } return attachments; }
From source file:org.helm.notation2.wsadapter.MonomerWSLoader.java
/** * Private routine to deserialize monomer Store JSON. This is done manually to * give more freedom regarding data returned by the webservice. * * @param parser the JSONParser containing JSONData. * @param attachmentDB the attachments stored in the Toolkit * @return Map containing monomers/* w w w. java 2 s.c o m*/ * * @throws JsonParseException * @throws IOException * @throws EncoderException */ private Map<String, Monomer> deserializeMonomerStore(JsonParser parser, Map<String, Attachment> attachmentDB) throws JsonParseException, IOException, EncoderException { Map<String, Monomer> monomers = new HashMap<String, Monomer>(); Monomer currentMonomer = null; parser.nextToken(); while (parser.hasCurrentToken()) { String fieldName = parser.getCurrentName(); JsonToken token = parser.getCurrentToken(); if (JsonToken.START_OBJECT.equals(token)) { currentMonomer = new Monomer(); } else if (JsonToken.END_OBJECT.equals(token)) { monomers.put(currentMonomer.getAlternateId(), currentMonomer); } if (fieldName != null) { switch (fieldName) { // id is first field case "id": parser.nextToken(); currentMonomer.setId(Integer.parseInt(parser.getText())); break; case "alternateId": parser.nextToken(); currentMonomer.setAlternateId(parser.getText()); break; case "naturalAnalog": parser.nextToken(); currentMonomer.setNaturalAnalog(parser.getText()); break; case "name": parser.nextToken(); currentMonomer.setName(parser.getText()); break; case "canSMILES": parser.nextToken(); currentMonomer.setCanSMILES(parser.getText()); break; case "molfile": parser.nextToken(); currentMonomer.setMolfile(MolfileEncoder.decode(parser.getText())); break; case "monomerType": parser.nextToken(); currentMonomer.setMonomerType(parser.getText()); break; case "polymerType": parser.nextToken(); currentMonomer.setPolymerType(parser.getText()); break; case "attachmentList": currentMonomer.setAttachmentList(deserializeAttachmentList(parser, attachmentDB)); break; case "newMonomer": parser.nextToken(); currentMonomer.setNewMonomer(Boolean.parseBoolean(parser.getText())); break; case "adHocMonomer": parser.nextToken(); currentMonomer.setAdHocMonomer(Boolean.parseBoolean(parser.getText())); break; default: break; } } parser.nextToken(); } return monomers; }
From source file:bamboo.trove.full.FullReindexWarcManager.java
private LinkedList<ToIndex> getNextBatch() throws IOException { long startOfNextBatch = endOfBatchId + 1; URL url = new URL(bambooCollectionsUrl + "?start=" + startOfNextBatch + "&rows=" + bambooBatchSize); log.info("Contacting Bamboo for more IDs. start={}, rows={}", startOfNextBatch, bambooBatchSize); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); InputStream in = new BufferedInputStream(connection.getInputStream()); ObjectMapper om = getObjectMapper(); JsonParser json = createParser(in); JsonToken token = json.nextToken(); if (token == null) { throw new IllegalArgumentException("No JSON data found in response"); }// w w w . j av a2 s . c o m if (!JsonToken.START_ARRAY.equals(token)) { throw new IllegalArgumentException("JSON response is not an array"); } LinkedList<ToIndex> result = new LinkedList<>(); while (json.nextToken() == JsonToken.START_OBJECT) { result.add(new ToIndex(om.readValue(json, WarcToIndex.class))); } return result; }
From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java
private void parseField(List<String> fieldNames, List<Primitive> fieldTypes, Row.RowBuilder rowBuilder, JsonParser parser) throws IOException { final String fieldName = parser.getCurrentName(); // Move to next token, which is name's value JsonToken token = parser.nextToken(); int i = fieldNames.indexOf(fieldName); if (i < 0) { return;/*w ww. ja v a2 s .c o m*/ } switch (token) { case VALUE_NUMBER_INT: case VALUE_NUMBER_FLOAT: Primitive type = fieldTypes.get(i); if (type == null) { if (token == JsonToken.VALUE_NUMBER_INT) { type = Primitive.INT; } else { type = Primitive.FLOAT; } } switch (type) { case BYTE: rowBuilder.set(i, parser.getIntValue()); break; case SHORT: rowBuilder.set(i, parser.getShortValue()); break; case INT: rowBuilder.set(i, parser.getIntValue()); break; case LONG: rowBuilder.set(i, parser.getLongValue()); break; case FLOAT: rowBuilder.set(i, parser.getFloatValue()); break; case DOUBLE: rowBuilder.set(i, parser.getDoubleValue()); break; } break; case VALUE_TRUE: rowBuilder.set(i, true); break; case VALUE_FALSE: rowBuilder.set(i, false); break; case VALUE_NULL: break; default: rowBuilder.set(i, parser.getText()); } }
From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java
public final NativeResponse.Link.Builder readRespLink(JsonParser par) throws IOException { NativeResponse.Link.Builder link = NativeResponse.Link.newBuilder(); for (startObject(par); endObject(par); par.nextToken()) { String fieldName = getCurrentName(par); if (par.nextToken() != JsonToken.VALUE_NULL) { readRespLinkField(par, link, fieldName); }/*w w w.j a va 2s. c o m*/ } return link; }
From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java
public final NativeRequest.Asset.Builder readReqAsset(JsonParser par) throws IOException { NativeRequest.Asset.Builder asset = NativeRequest.Asset.newBuilder(); for (startObject(par); endObject(par); par.nextToken()) { String fieldName = getCurrentName(par); if (par.nextToken() != JsonToken.VALUE_NULL) { readReqAssetField(par, asset, fieldName); }// w w w . ja v a 2 s. c o m } return asset; }