사용자 지정 명명 전략을 변환하지 사용자 지정 명명 전략을 사용할 때 이름이 올바르게 변환되지 않습니다. '비 HAL'필드 만 변환됩니다.Halarious 포함 된 리소스 필드 이름 내가 HAL-사양 프레임 워크를 사용하고
질문 : 정규 명명 된 필드뿐만 아니라 포함 리소스에도 사용자 지정 명명 규칙을 적용 할 수있는 방법이 있습니까?
i를AllLowercaseFieldNamingStrategy
구현은 단순히 필드 이름을 변환
GsonBuilder builder = new GsonBuilder();
builder.setFieldNamingStrategy(new AllLowercaseFieldNamingStrategy());
builder.registerTypeAdapter(HalResource.class, new HalSerializer());
builder.setExclusionStrategies(new HalExclusionStrategy());
Gson gson = builder.create();
try (OutputStreamWriter writer = new OutputStreamWriter(entityStream)) {
writer.write(gson.toJson(resource, HalResource.class));
}
사용자 정의 MessageBodyWriter에서 다음 GSON 구성은 ... 예를 들어 너무 @Override public String translateName(Field f) { return f.getName().toLowerCase(); }
처럼 소문자로 있습니다
public class MyResource implements HalResource {
private final String myField;
private final MyResource myEmbeddedResource;
...
}
이 필드 이름이 일치하지 않습니다 (이름 지정 전략에 따라 모두 소문자 여야 함) ...