无法反序列化JSON响应
如何使用java pojo类反序列化下面的json响应。无法反序列化JSON响应
JSON响应
"details":
{
"distance": 14745,
"km": 14.745,
"steps": 16804,
"active_time": 11927,
"longest_active": 2516,
"inactive_time": 32760,
"longest_idle": 27180,
"calories": 1760.30480012,
"bmr_day": 1697.47946931,
"bmr": 1697.47946931,
"bg_calories": 1099.9439497,
"wo_calories": 388.506116077,
"wo_time": 11484,
"wo_active_time": 3902,
"wo_count": 2,
"wo_longest": 2516,
"tz": "America/Los Angeles",
"tzs":
[
[1384963500, "America/Phoenix"],
[1385055720, "America/Los_Angeles"]
]
}
我已经写了下面的POJO渔获反序列化JSON响应。
Response.java
public class Response {
private Distance distance;
}
Distance.java
public class Distance{ private int distance;
private double km;
private int steps;
private int active_time;
private int longest_active;
private int inactive_time;
private int longest_idle;
private int calories;
private int bmr_day;
private int bmr;
private int bg_calories;
private int wo_calories;
private int wo_time;
private int wo_active_time;
private int wo_count;
private int wo_longest;
private int sunrise;
private int sunset;
private String tz;
private String[] tzs;
private String hourly_totals;
}
我得到了下面的异常,
Can not deserialize instance of java.lang.String out of START_ARRAY token
atSource: [email protected];(through reference chain: Details["tzs"]);
nested exception is com.fasterxml.jackson.databind.JsonMappingException:
Can not deserialize instance of java.lang.String out of START_ARRAY token
如何克服这一点。
你需要一个类来匹配时区
public class TimeZoneClass {
private Object[] tz_values ;
}
而且在
变化的阵列此
private String[] tzs;
这个
private TimeZoneClass[] tzs;
我试过上面但仍然是例外。 – Karthik
我想你应该在TimeZoneClass中使用Object []而不是2个不同的字段...因为只有'JSONObjects'会被解析成不同的字段......但是这里是一个'JSONArray',它包含了ID和名字。 – Codebender
@Codebender随时编辑我的答案或张贴自己的,因为你应得的信用;-) –
尝试改变为字符串[ ] tzs as List
你不需要类TimeZone来匹配那部分JSON吗? –
您的JSON响应中的'tzs'不是字符串数组(而不是您的'Response'类),而是一个字符串数组数组。 –