private static class ComponentBuilderHandler implements JsonDeserializer<EntityData.Component.Builder> {
@Override
public EntityData.Component.Builder deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
EntityData.Component.Builder component = EntityData.Component.newBuilder();
JsonObject jsonObject = json.getAsJsonObject();
for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
EntityData.NameValue.Builder nameValue = EntityData.NameValue.newBuilder();
nameValue.setName(entry.getKey());
EntityData.Value value = context.deserialize(entry.getValue(), EntityData.Value.class);
nameValue.setValue(value);
component.addField(nameValue);