У меня есть JSON, который выглядит так
{
"file": "sample.txt",
"valid": "true",
"parameters": {
"size": "15kb",
"charset": "UTF-8",
....
}
}
Но я хочу десериализовать его как единый объект. Не так
class ValidatedFile {
String file;
boolean valid;
FileParameters params;
}
а вот так
class ValidatedFile {
String file;
boolean valid;
String size;
String charset;
....
}
Мне нужно как-то развернуть этот объект.
Как это сделать с помощью jackson?




Используйте @JsonProperty("parameters"):
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;
public class Product {
String file;
boolean valid;
String size;
String charset;
@JsonProperty("parameters")
private void unpackNested(Map<String,Object> parameters) {
this.size = (String)parameters.get("size");
this.charset = (String)parameters.get("charset");
}
}
Другое подходы.
@SuppressWarnings("unchecked") не нужен
любые параметры, которые вы написали в классе модели FileParameters, вместо того, чтобы писать туда, пишите в классе Validate File.