【问题标题】:Deserializing an array of name value pairs to an object using Jackson使用 Jackson 将名称值对数组反序列化为对象
【发布时间】:2019-08-27 01:42:44
【问题描述】:

我有一个像这样的 JSON,

{
  "status": "SUCCESS",
  "msg": [
    "id",
    "123",
    "score",
    "15901862",
    "duration",
    "10"
  ]
}

msg 是一个字符串数组,键名后跟其值

我需要将其反序列化为这种形式的类结构,

class Result {

    @JsonProperty("status")
    private String status;

    @JsonProperty("msg")
    private Message message;
}

class Message {

    @JsonProperty("id")
    private long messageId;

    @JsonProperty("score")
    private long score;

    @JsonProperty("duration")
    private long duration;
}

我仍想利用 JsonProperty 注释在反序列化期间设置正确的属性。在杰克逊最有效的方法是什么?

【问题讨论】:

    标签: java arrays json jackson jackson-databind


    【解决方案1】:
     @JsonProperty("msg")
    private Message message;
    

    Phoenix 的属性应该是一个数组。

    【讨论】:

    • dontt phoenix messages 属性应该是一个数组
    • json中的数组需要映射到一个对象。
    • 消息属性应该是List类型或者数组,泛型应该是字符串。
    • 对不起,我好像误解了你的意思。为什么不使用哈希?
    【解决方案2】:
    class Result {
    
    @JsonProperty("status")
    private String status;
    
    @JsonProperty("msg")
    private List<String> message;
    }
    

    喜欢这个

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    相关资源
    最近更新 更多