我有一个JSON请求正文,如下所示
{
"aaa": "value",
"bbb": "value",
"ccc":"value",
"resultSuccess": {
"geometry": {
"type": "Point",
"coordinates": [
4.764638612000056,
52.308615736000036
]
}
}
}
结果字段有一个json值,我的pojo类看起来像
Class Pojo{
String aaa;
String bbb;
String ccc;
String resultSuccess;
}
这意味着我试图将结果中的json映射到字符串值。但我得到的错误
JSON parse error: Can not deserialize instance of java.lang.String out of
START_OBJECT token; nested exception is
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize
instance of java.lang.String out of START_OBJECT token\n at [Source:
java.io.PushbackInputStream@5b405da4;
我尝试添加@JsonProperty(“resultSuccess”),但它不起作用,我仍然得到错误。有没有办法在不更改数据类型字符串的情况下执行此操作?
答案 0 :(得分:0)
错误消息显示所有内容,resultSuccess
是Json对象而不是字符串。您必须创建相应的Pojo或使用JSONObject
。
答案 1 :(得分:0)
无法从START_OBJECT
中反序列化java.lang.String的实例
正如@zakaria所提到的,错误说明了一切,如果你看resultSuccess
,它不是String
而是Object
"resultSuccess": {
"geometry": {
"type": "Point",
"coordinates": [
4.764638612000056,
52.308615736000036
]
}
}
但是,在您的Pojo
课程中,您已将其声明为String
。
String resultSuccess;
它必须是相应的其他类型。一个例子可能是
<强> Geometry.java 强>
class Geometry
{
String type;
double[] coordinates;
}
<强> ResultSuccess.java 强>
class ResultSuccess
{
Geometry geometry;
}
<强> Pojo.java 强>
class Pojo
{
String aaa;
String bbb;
String ccc;
ResultSuccess resultSuccess;
}
答案 2 :(得分:0)
[20160103, 20160104, 20160105, 20160106, 20160107, 20160108, 20160109]
[20160626, 20160627, 20160628, 20160629, 20160630, 20160701, 20160702]
{ 201601: [ 20160103,
20160104,
20160105,
20160106,
20160107,
20160108,
20160109],
201606: [ 20160626,
20160627,
20160628,
20160629,
20160630,
20160701,
20160702]}
其他方式使resultSuccess成为pojo
答案 3 :(得分:0)
使用此Conert Json to Java Pojo Class获取pojo
的{{1}}课程。