String attrName = jsonReader.nextName();
while (jsonReader.hasNext()) {
JsonToken token = jsonReader.peek();
switch (token) {
case STRING:
record.put(attrName, new JsonAttribute(jsonReader.nextString()));
return;
case NUMBER:
record.put(attrName, new JsonAttribute(jsonReader.nextDouble()));
return;
case BOOLEAN:
record.put(attrName, new JsonAttribute(jsonReader.nextBoolean()));
return;
case BEGIN_ARRAY:
if ("distribution".equals(attrName)) {
jsonReader.beginArray();
parseDistributions(record.getDistribution());