if (domWalker != null) {
domWalker.startField();
}
JsonToken next = parser.nextToken();
if (next == null) {
throw new JsonParseException("Expected value, array, or object.", parser.getCurrentLocation());
}
if (next.isScalarValue()) {
String fieldName = parser.getCurrentName();
handleScalarToken(next, fieldName);
if (domWalker != null) {
domWalker.endField();
}
} else {
String fieldName = parser.getCurrentName();
if (next == JsonToken.START_ARRAY) {
startArray(fieldName);
} else if (next == JsonToken.START_OBJECT) {
startObject();
} else {
throw new JsonParseException("Expected value, array, or object.", parser.getCurrentLocation());
}
}
}