gpt4 book ai didi

jackson - Jackson:将字符串数组反序列化为List

转载 作者:行者123 更新时间:2023-12-04 14:28:43 27 4
gpt4 key购买 nike

对于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进行子类化之前,我想验证没有内置功能可以做到这一点。

最佳答案

最后写了我自己的反序列化器。

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");
}
}

关于jackson - Jackson:将字符串数组反序列化为List <T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516154/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com