java jackson shape,Deserializing a json which contains @JsonFormat(shape=JsonFormat.Shape.ARRAY) and...

JsonFormat does the trick but you also need to declare constructor with JsonCreator annotation. Take a look on below example:

import com.fasterxml.jackson.annotation.JsonCreator;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.fasterxml.jackson.annotation.JsonProperty;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;

import java.util.List;

public class JsonApp {

public static void main(String[] args) throws Exception {

File jsonFile = new File("./resource/test.json").getAbsoluteFile();

ObjectMapper mapper = new ObjectMapper();

Response myPojo = mapper.readValue(jsonFile, Response.class);

System.out.println(myPojo);

}

}

class Response {

private List values;

public List getValues() {

return values;

}

public void setValues(List values) {

this.values = values;

}

@Override

public String toString() {

return "Response{" +

"values=" + values +

'}';

}

}

@JsonFormat(shape = JsonFormat.Shape.ARRAY)

class Value {

private long timestamp;

private float val;

@JsonCreator

public Value(@JsonProperty("timestamp") long timestamp, @JsonProperty("val") float val) {

this.timestamp = timestamp;

this.val = val;

}

public long getTimestamp() {

return timestamp;

}

public void setTimestamp(long timestamp) {

this.timestamp = timestamp;

}

public float getVal() {

return val;

}

public void setVal(float val) {

this.val = val;

}

@Override

public String toString() {

return "Value{" +

"timestamp=" + timestamp +

", val=" + val +

'}';

}

}

Above code for below JSON payload:

{

"values": [

[

1552215648,

18

],

[

123,

12.24

]

]

}

Prints:

Response{values=[Value{timestamp=1552215648, val=18.0}, Value{timestamp=123, val=12.24}]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值