JSON 객체의 경우 Subject
:
{
"permissions":["foo", "bar"],
...
}
... 역 직렬화하고 싶습니다.
class Subject {
private List<Permission> permissions;
...
... 어디 Permission
:
class Permission {
....
public Permission(String permission) {
....
}
Permission
내가 제어하는 클래스가 아니므로 처리 할 생성자 만 있습니다.
나는 Jackson이 이것을 할 수 있다고 확신하지만 아직 최선의 방법을 찾았다 고 확신하지 못합니다. 나의 노력 ArrayDeserializer
과 @JsonDeserialize(contentAs = Permission.class)
실패와 나는 하위 클래스를 시작하기 전에 JsonDeserializer
나는 기능이 내장에는이 작업을 수행 할 수 있는지 확인하지 싶습니다.
내 자신의 Deserializer를 작성했습니다.
public class PermissionDeserializer extends JsonDeserializer<List<Permission>> {
@Override
public List<Permission> deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
List<Permission> permissions = new ArrayList<>();
while(jsonParser.nextToken() != JsonToken.END_ARRAY) {
permissions.add(new Permission(jsonParser.getValueAsString()));
}
return permissions;
}
throw deserializationContext.mappingException("Expected Permissions list");
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다