in eureka-client/src/main/java/com/netflix/discovery/converters/EurekaJacksonCodec.java [803:834]
public Applications deserialize(JsonParser jp, DeserializationContext context) throws IOException {
if (Thread.currentThread().isInterrupted()) {
throw new JsonParseException(jp, "processing aborted");
}
Applications apps = new Applications();
JsonToken jsonToken;
while((jsonToken = jp.nextToken()) != JsonToken.END_OBJECT){
if(JsonToken.FIELD_NAME == jsonToken){
String fieldName = jp.getCurrentName();
jsonToken = jp.nextToken();
if(versionDeltaKey.equals(fieldName)){
apps.setVersion(jp.getValueAsLong());
} else if (appHashCodeKey.equals(fieldName)){
apps.setAppsHashCode(jp.getValueAsString());
}
else if (NODE_APP.equals(fieldName)) {
ObjectReader applicationReader = DeserializerStringCache.init(mapper.readerFor(Application.class), context);
if (jsonToken == JsonToken.START_ARRAY) {
while (jp.nextToken() != JsonToken.END_ARRAY) {
apps.addApplication(applicationReader.readValue(jp));
}
}
else if (jsonToken == JsonToken.START_OBJECT) {
apps.addApplication(applicationReader.readValue(jp));
}
}
}
}
return apps;
}