Gson의 fromJson
메서드를 사용할 때 주어진 클래스의 집합 메서드가 사용되는 방식이 있습니까?Gson이 JSON을 비 직렬화 할 때 setter를 사용할 수 있습니까?
모든 String
대상 클래스의 전역 변수가 트림되기 때문에이 작업을 수행하고 싶습니다.
GSON API 주석이 있습니까?
GSON은 사용자 지정 serializer/deserializers를 작성할 수있는 기능을 제공하지만 다른 방법이 있는지 알고 싶습니다.
Gson의 fromJson
메서드를 사용할 때 주어진 클래스의 집합 메서드가 사용되는 방식이 있습니까?Gson이 JSON을 비 직렬화 할 때 setter를 사용할 수 있습니까?
모든 String
대상 클래스의 전역 변수가 트림되기 때문에이 작업을 수행하고 싶습니다.
GSON API 주석이 있습니까?
GSON은 사용자 지정 serializer/deserializers를 작성할 수있는 기능을 제공하지만 다른 방법이 있는지 알고 싶습니다.
JsonDeserializer<String>
을 구현하여 GsonBuilder
에 등록했습니다. 그래서,받은 모든 문자열 필드에 Gson은 내 StringGsonTypeAdapter
을 사용하여 값을 비 직렬화합니다.
import static net.hugonardo.java.commons.text.StringUtils.normalizeSpace;
import static net.hugonardo.java.commons.text.StringUtils.trimToNull;
final class StringGsonTypeAdapter implements JsonDeserializer<String> {
private static final StringGsonTypeAdapter INSTANCE = new StringGsonTypeAdapter();
static StringGsonTypeAdapter instance() {
return INSTANCE;
}
@Override
public String deserialize(JsonElement jsonElement, Type type,
JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
return normalizeSpace(trimToNull(jsonElement.getAsString()));
}
}
... 그리고 내 GsonBuilder :
Gson gson = new GsonBuilder()
.registerTypeAdapter(String.class, StringGsonTypeAdapter.instance())
.create())
다음
내 코드입니다
아니요은 없습니다. Gson은 주로 인스턴스 필드에 대한 반향으로 작동합니다. 따라서이 기능이있는 Jackson으로 이동하지 않으려는 경우 일반 설정자에게 전화 할 수는 없습니다. 그래서 그것에 대한 주석이 없습니다.
하지만
당신이 할 수 필요가 특정을 달성하기 위해 : 당신은 트림 및 사용자 정의를 작성하려는 문자열을 가진 생성자를 만들 사용자 정의
일부 코드를 게시하거나 데이터/JSON에 대한 정보를 제공하는 한 더 많은 힌트를 제공 할 수 있습니다.