使用杰克逊解开内部json对象

时间:2018-12-25 09:02:31

标签: java json jackson

我有一个看起来像这样的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来做到这一点?

1 个答案:

答案 0 :(得分:3)

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

}

其他approaches