List of usage examples for com.fasterxml.jackson.core JsonToken FIELD_NAME
JsonToken FIELD_NAME
To view the source code for com.fasterxml.jackson.core JsonToken FIELD_NAME.
Click Source Link
From source file:com.github.shyiko.jackson.module.advice.AdvisedBeanDeserializer.java
protected Object deserializeWithView(JsonParser jp, DeserializationContext ctxt, Object bean, Class<?> activeView) throws IOException { beanDeserializerAdvice.before(bean, jp, ctxt); JsonToken t = jp.getCurrentToken();//from ww w.j ava2 s.c o m for (; t == JsonToken.FIELD_NAME; t = jp.nextToken()) { String propName = jp.getCurrentName(); // Skip field name: jp.nextToken(); if (beanDeserializerAdvice.intercept(bean, propName, jp, ctxt)) { continue; } SettableBeanProperty prop = _beanProperties.find(propName); if (prop != null) { if (!prop.visibleInView(activeView)) { jp.skipChildren(); continue; } try { prop.deserializeAndSet(jp, ctxt, bean); } catch (Exception e) { wrapAndThrow(e, bean, propName, ctxt); } continue; } handleUnknownVanilla(jp, ctxt, bean, propName); } beanDeserializerAdvice.after(bean, jp, ctxt); return bean; }
From source file:com.evolveum.midpoint.prism.lex.json.AbstractJsonLexicalProcessor.java
/** * Normally returns a MapXNode. However, JSON primitives/lists can be simulated by two-member object (@type + @value); in these cases we return respective XNode. *///from ww w.java 2 s . co m @NotNull private XNode parseJsonObject(JsonParsingContext ctx, IterativeParsingContext ipc) throws SchemaException, IOException { Validate.notNull(ctx.parser.currentToken()); QName typeName = null; QNameUtil.QNameInfo elementNameInfo = null; Object tid = ctx.parser.getTypeId(); if (tid != null) { typeName = tagToTypeName(tid, ctx); } final MapXNode map = new MapXNode(); XNode wrappedValue = null; boolean defaultNamespaceDefined = false; QNameUtil.QNameInfo currentFieldNameInfo = null; for (;;) { if (ipc != null && ipc.abortProcessing) { break; } JsonToken token = ctx.parser.nextToken(); if (token == null) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Unexpected end of data while parsing a map structure at " + getPositionSuffix(ctx)); break; } else if (token == JsonToken.END_OBJECT) { break; } else if (token == JsonToken.FIELD_NAME) { String newFieldName = ctx.parser.getCurrentName(); if (currentFieldNameInfo != null) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Two field names in succession: " + currentFieldNameInfo + " and " + newFieldName); } currentFieldNameInfo = QNameUtil.uriToQNameInfo(newFieldName, true); } else { assert currentFieldNameInfo != null; PrismContext prismContext = schemaRegistry.getPrismContext(); // if we look for objects and found an entry different from c:objects boolean skipValue = false; if (ipc != null && !isSpecial(currentFieldNameInfo.name) && (prismContext.getObjectsElementName() == null || !QNameUtil .match(currentFieldNameInfo.name, prismContext.getObjectsElementName()))) { if (ipc.dataSent) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Superfluous data after list of objects was found: " + currentFieldNameInfo.name); skipValue = true; } else { ipc = null; } } XNode valueXNode = parseValue(ctx, ipc); if (skipValue) { continue; } if (isSpecial(currentFieldNameInfo.name)) { if (isNamespaceDeclaration(currentFieldNameInfo.name)) { if (defaultNamespaceDefined) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Default namespace defined more than once at " + getPositionSuffix(ctx)); } String namespaceUri = getStringValue(valueXNode, currentFieldNameInfo, ctx); ctx.defaultNamespaces.put(map, namespaceUri); defaultNamespaceDefined = true; if (ipc != null) { if (ipc.dataSent) { ctx.prismParsingContext.warnOrThrow(LOGGER, "When parsing list of objects, default namespace was present after the objects " + getPositionSuffix(ctx)); } else { ipc.defaultNamespace = namespaceUri; // there is a place for only one @ns declaration (at the level of "objects" map) } } } else if (isTypeDeclaration(currentFieldNameInfo.name)) { if (typeName != null) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Value type defined more than once at " + getPositionSuffix(ctx)); } typeName = QNameUtil.uriToQName(getStringValue(valueXNode, currentFieldNameInfo, ctx), true); } else if (isElementDeclaration(currentFieldNameInfo.name)) { if (elementNameInfo != null) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Element name defined more than once at " + getPositionSuffix(ctx)); } elementNameInfo = QNameUtil .uriToQNameInfo(getStringValue(valueXNode, currentFieldNameInfo, ctx), true); } else if (isValue(currentFieldNameInfo.name)) { if (wrappedValue != null) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Value ('" + PROP_VALUE + "') defined more than once at " + getPositionSuffix(ctx)); } wrappedValue = valueXNode; } } else { Map.Entry<QName, XNode> entry = map.putReturningEntry(currentFieldNameInfo.name, valueXNode); if (currentFieldNameInfo.explicitEmptyNamespace) { ctx.noNamespaceEntries.put(entry, null); } } currentFieldNameInfo = null; } } // Return either map or primitive value (in case of @type/@value) XNode rv; if (wrappedValue != null) { if (!map.isEmpty()) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Both '" + PROP_VALUE + "' and regular content present at " + getPositionSuffix(ctx)); rv = map; } else { rv = wrappedValue; } } else { rv = map; } if (typeName != null) { if (wrappedValue != null && wrappedValue.getTypeQName() != null && !wrappedValue.getTypeQName().equals(typeName)) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Conflicting type names for '" + PROP_VALUE + "' (" + wrappedValue.getTypeQName() + ") and regular content (" + typeName + ") present at " + getPositionSuffix(ctx)); } rv.setTypeQName(typeName); rv.setExplicitTypeDeclaration(true); } if (elementNameInfo != null) { if (wrappedValue != null && wrappedValue.getElementName() != null) { boolean wrappedValueElementNoNamespace = ctx.noNamespaceElementNames.containsKey(wrappedValue); if (!wrappedValue.getElementName().equals(elementNameInfo.name) || wrappedValueElementNoNamespace != elementNameInfo.explicitEmptyNamespace) { ctx.prismParsingContext.warnOrThrow(LOGGER, "Conflicting element names for '" + PROP_VALUE + "' (" + wrappedValue.getElementName() + "; no NS=" + wrappedValueElementNoNamespace + ") and regular content (" + elementNameInfo.name + "; no NS=" + elementNameInfo.explicitEmptyNamespace + ") present at " + getPositionSuffix(ctx)); } } rv.setElementName(elementNameInfo.name); if (elementNameInfo.explicitEmptyNamespace) { ctx.noNamespaceElementNames.put(rv, null); } } return rv; }
From source file:com.adobe.communities.ugc.migration.importer.UGCImportHelper.java
public void importForumContent(final JsonParser jsonParser, final Resource resource, final ResourceResolver resolver) throws ServletException, IOException { if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { jsonParser.nextToken(); // advance to first key in the object - should be the id value of the old post while (jsonParser.getCurrentToken().equals(JsonToken.FIELD_NAME)) { extractTopic(jsonParser, resource, resolver, forumOperations); jsonParser.nextToken(); // get the next token - presumably a field name for the next post }/*from ww w. jav a 2s. c o m*/ jsonParser.nextToken(); // skip end token } else { throw new IOException("Improperly formed JSON - expected an OBJECT_START token, but got " + jsonParser.getCurrentToken().toString()); } }
From source file:com.zenesis.qx.remote.RequestHandler.java
private Object[] readParameters(JsonParser jp, Class[] types) throws IOException { if (types == null) { // Check for parameters if (jp.getCurrentToken() == JsonToken.FIELD_NAME && jp.getCurrentName().equals("parameters") && jp.nextToken() == JsonToken.START_ARRAY) { while (jp.nextToken() != JsonToken.END_ARRAY) ;/*from w w w . j a va 2s.c om*/ } return null; } Object[] values = new Object[types.length]; Object[] params = null; // Check for parameters if (jp.getCurrentToken() == JsonToken.FIELD_NAME && jp.getCurrentName().equals("parameters") && jp.nextToken() == JsonToken.START_ARRAY) { params = readArray(jp, types); } for (int i = 0; i < values.length; i++) if (i < params.length) values[i] = params[i]; else values[i] = null; return values; }
From source file:com.adobe.communities.ugc.migration.importer.UGCImportHelper.java
public void importCommentsContent(final JsonParser jsonParser, final Resource resource, final ResourceResolver resolver) throws ServletException, IOException { if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { jsonParser.nextToken(); // advance to first key in the object - should be the id value of the old post while (jsonParser.getCurrentToken().equals(JsonToken.FIELD_NAME)) { extractTopic(jsonParser, resource, resolver, commentOperations); jsonParser.nextToken(); // get the next token - presumably a field name for the next post }/* w ww . j av a 2 s . co m*/ jsonParser.nextToken(); // skip end token } else { throw new IOException("Improperly formed JSON - expected an OBJECT_START token, but got " + jsonParser.getCurrentToken().toString()); } }
From source file:com.netflix.hollow.jsonadapter.HollowJsonAdapter.java
private int addUnstructuredMap(JsonParser parser, String mapTypeName, HollowMapWriteRecord mapRec) throws IOException { mapRec.reset();/*from ww w . j a v a 2s .c o m*/ HollowMapSchema schema = (HollowMapSchema) hollowSchemas.get(mapTypeName); ObjectFieldMapping valueRec = null; ObjectMappedFieldPath fieldMapping = null; JsonToken token = parser.nextToken(); while (token != JsonToken.END_OBJECT) { if (token != JsonToken.FIELD_NAME) { HollowObjectWriteRecord mapKeyWriteRecord = (HollowObjectWriteRecord) getWriteRecord( schema.getKeyType()); String fieldName = mapKeyWriteRecord.getSchema().getFieldName(0); mapKeyWriteRecord.reset(); switch (mapKeyWriteRecord.getSchema().getFieldType(0)) { case STRING: mapKeyWriteRecord.setString(fieldName, parser.getCurrentName()); break; case BOOLEAN: mapKeyWriteRecord.setBoolean(fieldName, Boolean.valueOf(parser.getCurrentName())); break; case INT: mapKeyWriteRecord.setInt(fieldName, Integer.parseInt(parser.getCurrentName())); break; case LONG: mapKeyWriteRecord.setLong(fieldName, Long.parseLong(parser.getCurrentName())); break; case DOUBLE: mapKeyWriteRecord.setDouble(fieldName, Double.parseDouble(parser.getCurrentName())); break; case FLOAT: mapKeyWriteRecord.setFloat(fieldName, Float.parseFloat(parser.getCurrentName())); break; default: throw new IOException("Cannot parse type " + mapKeyWriteRecord.getSchema().getFieldType(0) + " as key in map (" + mapKeyWriteRecord.getSchema().getName() + ")"); } int keyOrdinal = stateEngine.add(schema.getKeyType(), mapKeyWriteRecord); int valueOrdinal; if (token == JsonToken.START_OBJECT || token == JsonToken.START_ARRAY) { valueOrdinal = parseSubType(parser, token, schema.getValueType()); } else { if (valueRec == null) { valueRec = getObjectFieldMapping(schema.getValueType()); fieldMapping = valueRec.getSingleFieldMapping(); } addObjectField(parser, token, fieldMapping); valueOrdinal = valueRec.build(-1); } mapRec.addEntry(keyOrdinal, valueOrdinal); } token = parser.nextToken(); } return stateEngine.add(schema.getName(), mapRec); }
From source file:com.adobe.communities.ugc.migration.importer.UGCImportHelper.java
public void importJournalContent(final JsonParser jsonParser, final Resource resource, final ResourceResolver resolver) throws IOException, ServletException { if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) { jsonParser.nextToken(); // advance to first key in the object - should be the id value of the old post while (jsonParser.getCurrentToken().equals(JsonToken.FIELD_NAME)) { extractTopic(jsonParser, resource, resolver, journalOperations); jsonParser.nextToken(); // get the next token - presumably a field name for the next post }/*from w w w .j ava 2s . c o m*/ jsonParser.nextToken(); // skip end token } else { throw new IOException("Improperly formed JSON - expected an OBJECT_START token, but got " + jsonParser.getCurrentToken().toString()); } }
From source file:com.github.shyiko.jackson.module.advice.AdvisedBeanDeserializer.java
@SuppressWarnings("resource") protected Object deserializeWithUnwrapped(JsonParser jp, DeserializationContext ctxt, Object bean) throws IOException { JsonToken t = jp.getCurrentToken();/*from w w w . ja v a2 s.c om*/ if (t == JsonToken.START_OBJECT) { t = jp.nextToken(); } TokenBuffer tokens = new TokenBuffer(jp); tokens.writeStartObject(); final Class<?> activeView = _needViewProcesing ? ctxt.getActiveView() : null; beanDeserializerAdvice.before(bean, jp, ctxt); for (; t == JsonToken.FIELD_NAME; t = jp.nextToken()) { String propName = jp.getCurrentName(); if (beanDeserializerAdvice.intercept(bean, propName, jp, ctxt)) { continue; } SettableBeanProperty prop = _beanProperties.find(propName); jp.nextToken(); if (prop != null) { // normal case if (activeView != null && !prop.visibleInView(activeView)) { jp.skipChildren(); continue; } try { prop.deserializeAndSet(jp, ctxt, bean); } catch (Exception e) { wrapAndThrow(e, bean, propName, ctxt); } continue; } if (_ignorableProps != null && _ignorableProps.contains(propName)) { handleIgnoredProperty(jp, ctxt, bean, propName); continue; } // but... others should be passed to unwrapped property deserializers tokens.writeFieldName(propName); tokens.copyCurrentStructure(jp); // how about any setter? We'll get copies but... if (_anySetter != null) { _anySetter.deserializeAndSet(jp, ctxt, bean, propName); } } tokens.writeEndObject(); _unwrappedPropertyHandler.processUnwrapped(jp, ctxt, bean, tokens); beanDeserializerAdvice.after(bean, jp, ctxt); return bean; }
From source file:com.bazaarvoice.jackson.rison.RisonParser.java
@Override public String nextTextValue() throws IOException, JsonParseException { if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' _nameCopied = false;/* ww w .java2 s. c om*/ JsonToken t = _nextToken; _nextToken = null; _currToken = t; if (t == JsonToken.VALUE_STRING) { if (_tokenIncomplete) { _tokenIncomplete = false; _finishString(); } return _textBuffer.contentsAsString(); } if (t == JsonToken.START_ARRAY) { _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); } else if (t == JsonToken.START_OBJECT) { _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); } return null; } // !!! TODO: optimize this case as well return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null; }