List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:jeplus.gui.EPlusEditorPanel.java
public void validateJSON(final String json) { boolean valid = false; String msg = null;/*from w ww . j a v a2s . c om*/ try { final JsonParser parser = new ObjectMapper().getJsonFactory().createJsonParser(json); while (parser.nextToken() != null) { } valid = true; } catch (JsonParseException jpe) { msg = jpe.getLocalizedMessage(); } catch (IOException ioe) { msg = ioe.getLocalizedMessage(); } if (!valid) { JOptionPane.showMessageDialog(this, "<html><p>JSON contents is not valid. Please check:</p><p>" + msg, "Success", JOptionPane.ERROR_MESSAGE); } else { JOptionPane.showMessageDialog(this, "JSON contents is valid!", "Success", JOptionPane.INFORMATION_MESSAGE); } }
From source file:com.adobe.communities.ugc.migration.importer.MessagesImportServlet.java
private void importMessages(final SlingHttpServletRequest request, final JsonParser jsonParser, final Map<String, Object> messageModifiers) throws ServletException { if (!jsonParser.getCurrentToken().equals(JsonToken.START_ARRAY)) { throw new ServletException("unexpected starting token " + jsonParser.getCurrentToken().asString()); }/*from w w w . ja va 2 s . c o m*/ try { jsonParser.nextToken(); //presumably, we will advance to a "start object" token while (!jsonParser.getCurrentToken().equals(JsonToken.END_ARRAY)) { final Map<String, Map<String, Boolean>> recipientModifiers = new HashMap<String, Map<String, Boolean>>(); final Map<String, Object> props = new HashMap<String, Object>(); final Map<String, Object> messageModifier = new HashMap<String, Object>(); List<FileDataSource> attachments = new ArrayList<FileDataSource>(); String sender = ""; jsonParser.nextToken(); //field name while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) { final String fieldName = jsonParser.getCurrentName(); jsonParser.nextToken(); //value if (fieldName.equals("senderId")) { sender = URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8"); } else if (fieldName.equals("added")) { final Calendar calendar = new GregorianCalendar(); calendar.setTimeInMillis(jsonParser.getLongValue()); messageModifier.put("added", calendar); } else if (fieldName.equals("recipients")) { // build the string for the "to" property and also create the modifiers we'll need later final StringBuilder recipientString = new StringBuilder(); //iterate over each key (each being a recipient id) if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { jsonParser.nextToken(); // should get first recipientId while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) { final String recipientId = jsonParser.getCurrentName(); jsonParser.nextToken(); //start object jsonParser.nextToken(); //first label final Map<String, Boolean> interactionModifiers = new HashMap<String, Boolean>(); while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) { final String label = jsonParser.getCurrentName(); jsonParser.nextToken(); final Boolean labelValue = jsonParser.getBooleanValue(); interactionModifiers.put(label, labelValue); jsonParser.nextToken(); //next label or end object } try { final String userPath = userPropertiesService.getAuthorizablePath(recipientId); recipientModifiers.put(userPath, interactionModifiers); recipientString.append(recipientId); } catch (final RepositoryException e) { // log the fact that a recipient specified in the json file doesn't exist in this // environment throw new ServletException( "A recipient specified in the migration file couldn't " + "be found in this environment", e); } jsonParser.nextToken(); // next recipientId or end object if (jsonParser.getCurrentToken().equals(JsonToken.FIELD_NAME)) { recipientString.append(';'); } } props.put("to", recipientString); messageModifier.put("recipientDetails", recipientModifiers); } } else if (fieldName.equals(ContentTypeDefinitions.LABEL_ATTACHMENTS)) { UGCImportHelper.getAttachments(jsonParser, attachments); } else { props.put(fieldName, URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8")); } jsonParser.nextToken(); //either next field name or end object } final Random range = new Random(); final String key = String.valueOf(range.nextInt(Integer.MAX_VALUE)) + String.valueOf(range.nextInt(Integer.MAX_VALUE)); // we're going to temporarily overwrite the subject (to do a search) and need to track its initial value if (props.containsKey("subject")) { messageModifier.put("subject", props.get("subject")); } else { messageModifier.put("subject", ""); } props.put("subject", key); //use subject as the search key messageModifiers.put(key, messageModifier); try { short result = messagingService.create(request.getResourceResolver(), request.getResource(), sender, props, attachments, clientUtilsFactory.getClientUtilities(xss, request, socialUtils)); if (result != 200) { throw new ServletException("Message sending failed. Return code was " + result); } } catch (final OperationException e) { throw new ServletException("Unable to create a message through the operation service", e); } jsonParser.nextToken(); //either END_ARRAY or START_OBJECT } } catch (final IOException e) { throw new ServletException("Encountered exception while parsing json content", e); } }
From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java
private void expectScalarField(JsonParser parser, String name) throws IOException { expect(parser, JsonToken.FIELD_NAME); if (!parser.getCurrentName().equals(name)) { throw new RuntimeException("expected field " + name + ", got " + parser.getCurrentName()); }//from w ww. j av a2 s.c om final JsonToken t = parser.nextToken(); switch (t) { case VALUE_NULL: case VALUE_FALSE: case VALUE_TRUE: case VALUE_NUMBER_INT: case VALUE_NUMBER_FLOAT: case VALUE_STRING: break; default: throw new RuntimeException("expected scalar field, got " + t); } }
From source file:name.gumartinm.weather.information.parser.JPOSForecastParser.java
private void getForecastWeatherDataObjects(final Forecast forecastWeatherData, final JsonParser jParser, final String fieldname) throws JsonParseException, IOException { if ("cod".equals(fieldname)) { final String stringCod = jParser.getText(); forecastWeatherData.setCod(Long.valueOf(stringCod)); }//from w ww. j a va2s. c om if ("message".equals(fieldname)) { forecastWeatherData.setMessage(jParser.getDoubleValue()); } if ("city".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); final JsonToken nextToken = jParser.nextToken(); // move to // value if ("id".equals(namefield)) { forecastWeatherData.getCity().setId(jParser.getLongValue()); } if ("name".equals(namefield)) { forecastWeatherData.getCity().setName(jParser.getText()); } if ("coord".equals(namefield)) { if (nextToken == JsonToken.START_OBJECT) { this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield); } } if ("country".equals(namefield)) { forecastWeatherData.getCity().setCountry(jParser.getText()); } if ("population".equals(namefield)) { forecastWeatherData.getCity().setPopulation(jParser.getLongValue()); } } } if ("cnt".equals(fieldname)) { forecastWeatherData.setCnt(jParser.getIntValue()); } if ("coord".equals(fieldname)) { while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("lon".equals(namefield)) { forecastWeatherData.getCity().getCoord().setLon(jParser.getDoubleValue()); } if ("lat".equals(namefield)) { forecastWeatherData.getCity().getCoord().setLat(jParser.getDoubleValue()); } } } if ("list".equals(fieldname)) { final name.gumartinm.weather.information.model.forecastweather.List list = new name.gumartinm.weather.information.model.forecastweather.List(); list.setTemp(new Temp()); list.setWeather(new ArrayList<Weather>()); forecastWeatherData.getList().add(list); while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); final JsonToken nextToken = jParser.nextToken(); // move to // value if ("dt".equals(namefield)) { list.setDt(jParser.getLongValue()); } if ("temp".equals(namefield)) { if (nextToken == JsonToken.START_OBJECT) { this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield); } } if ("pressure".equals(namefield)) { list.setPressure(jParser.getDoubleValue()); } if ("humidity".equals(namefield)) { list.setHumidity(jParser.getDoubleValue()); } if ("weather".equals(namefield)) { if (nextToken == JsonToken.START_ARRAY) { JsonToken tokenNext = jParser.nextToken(); while (tokenNext != JsonToken.END_ARRAY) { if (tokenNext == JsonToken.START_OBJECT) { this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield); } tokenNext = jParser.nextToken(); } } } if ("speed".equals(namefield)) { list.setSpeed(jParser.getDoubleValue()); } if ("deg".equals(namefield)) { list.setDeg(jParser.getDoubleValue()); } if ("clouds".equals(namefield)) { list.setClouds(jParser.getDoubleValue()); } if ("rain".equals(namefield)) { list.setRain(jParser.getDoubleValue()); } } } if ("temp".equals(fieldname)) { final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList() .get((forecastWeatherData.getList().size() - 1)); while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("day".equals(namefield)) { list.getTemp().setDay(jParser.getDoubleValue()); } if ("min".equals(namefield)) { list.getTemp().setMin(jParser.getDoubleValue()); } if ("max".equals(namefield)) { list.getTemp().setMax(jParser.getDoubleValue()); } if ("night".equals(namefield)) { list.getTemp().setNight(jParser.getDoubleValue()); } if ("eve".equals(namefield)) { list.getTemp().setEve(jParser.getDoubleValue()); } if ("morn".equals(namefield)) { list.getTemp().setMorn(jParser.getDoubleValue()); } } } if ("weather".equals(fieldname)) { final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList() .get((forecastWeatherData.getList().size() - 1)); final Weather weather = new Weather(); while (jParser.nextToken() != JsonToken.END_OBJECT) { final String namefield = jParser.getCurrentName(); jParser.nextToken(); // move to value if ("id".equals(namefield)) { weather.setId(jParser.getIntValue()); } if ("main".equals(namefield)) { weather.setMain(jParser.getText()); } if ("description".equals(namefield)) { weather.setDescription(jParser.getText()); } if ("icon".equals(namefield)) { weather.setIcon(jParser.getText()); } } list.getWeather().add(weather); } }
From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java
private void expectObjectField(JsonParser parser, String name) throws IOException { expect(parser, JsonToken.FIELD_NAME); if (!parser.getCurrentName().equals(name)) { throw new RuntimeException("expected field " + name + ", got " + parser.getCurrentName()); }/*from ww w . j a v a 2s. c om*/ expect(parser, JsonToken.START_OBJECT); while (parser.nextToken() != JsonToken.END_OBJECT) { // empty } }
From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java
protected void readNativeResponseField(JsonParser par, NativeResponse.Builder resp, String fieldName) throws IOException { switch (fieldName) { case "ver": resp.setVer(par.getText());/*from ww w .j a v a 2 s .co m*/ break; case "assets": for (startArray(par); endArray(par); par.nextToken()) { resp.addAssets(readRespAsset(par)); } break; case "link": resp.setLink(readRespLink(par)); break; case "imptrackers": for (startArray(par); endArray(par); par.nextToken()) { resp.addImptrackers(par.getText()); } break; case "jstracker": resp.setJstracker(par.getText()); break; default: readOther(resp, par, fieldName); } }
From source file:net.floodlightcontroller.cli.commands.ShowSwitchCmd.java
/** * Parses a JSON string and decomposes all JSON arrays and objects. Stores the * resulting strings in a nested Map of string objects. * //from w w w .ja v a 2 s. c o m * @param jsonString */ @SuppressWarnings("unchecked") private List<Map<String, Object>> parseJson(String jsonString) throws IOException { /* The Jackson JSON parser. */ JsonParser jp; /* The Jackson JSON factory. */ JsonFactory f = new JsonFactory(); /* The Jackson object mapper. */ ObjectMapper mapper = new ObjectMapper(); /* A list of JSON data objects retrieved by using the REST API. */ List<Map<String, Object>> jsonData = new ArrayList<Map<String, Object>>(); try { jp = f.createJsonParser(jsonString); } catch (JsonParseException e) { throw new IOException(e); } // Move to the first object in the array. jp.nextToken(); if (jp.getCurrentToken() != JsonToken.START_ARRAY) { throw new IOException("Expected START_ARRAY instead of " + jp.getCurrentToken()); } // Retrieve the information from JSON while (jp.nextToken() == JsonToken.START_OBJECT) { jsonData.add(mapper.readValue(jp, Map.class)); } // Close the JSON parser. jp.close(); // Return. return jsonData; }
From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java
protected void readRespLinkField(JsonParser par, NativeResponse.Link.Builder link, String fieldName) throws IOException { switch (fieldName) { case "url": link.setUrl(par.getText());/*w w w .jav a 2 s . c om*/ break; case "clicktrackers": for (startArray(par); endArray(par); par.nextToken()) { link.addClicktrackers(par.getText()); } break; case "fallback": link.setFallback(par.getText()); break; default: readOther(link, par, fieldName); } }
From source file:com.addthis.bundle.value.ValueDeserializer.java
@Override public ValueObject deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonToken t = jp.getCurrentToken();//w w w . j a v a 2s . c om switch (t) { case VALUE_TRUE: case VALUE_FALSE: case VALUE_STRING: return jp.readValueAs(ValueString.class); case VALUE_NUMBER_INT: return jp.readValueAs(ValueLong.class); case VALUE_NUMBER_FLOAT: return jp.readValueAs(ValueDouble.class); case START_ARRAY: return jp.readValueAs(ValueArray.class); case START_OBJECT: case FIELD_NAME: return jp.readValueAs(ValueMap.class); case END_OBJECT: // calling jp.readValueAs here will return null rather than an empty map, so make empty map in tokens jp.nextToken(); ObjectNode objectNode = ctxt.getNodeFactory().objectNode(); JsonParser emptyObjectParser = jp.getCodec().treeAsTokens(objectNode); emptyObjectParser.nextToken(); return emptyObjectParser.readValueAs(ValueMap.class); case VALUE_EMBEDDED_OBJECT: default: throw ctxt.mappingException(handledType()); } }
From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java
/** * Desserializes a {@link NativeRequest} from JSON, with a provided {@link JsonParser} * which allows several choices of input and encoding. */// w w w. j a va 2 s . c o m public final NativeRequest.Builder readNativeRequest(JsonParser par) throws IOException { if (emptyToNull(par)) { return null; } NativeRequest.Builder req = NativeRequest.newBuilder(); boolean rootNativeField = false; boolean firstField = true; for (startObject(par); endObject(par); par.nextToken()) { String fieldName = getCurrentName(par); if (par.nextToken() != JsonToken.VALUE_NULL) { if (firstField) { firstField = false; if ((rootNativeField = "native".equals(fieldName)) == true) { startObject(par); fieldName = getCurrentName(par); par.nextToken(); } } if (par.getCurrentToken() != JsonToken.VALUE_NULL) { readNativeRequestField(par, req, fieldName); } } } if (rootNativeField && !endObject(par)) { par.nextToken(); } return req; }