[英]Jackson Jersey JSON
我正在尝试使用Jersey和Jackson(尽管可以通过其他任何方式进行JSON解组工作)以某种形式(无论是POJO还是其他表示形式)将其输入我的系统。
基本上我只需要数据部分。 我试图将GenericTypes与列表一起使用,但这是一个嵌套列表,我不确定该怎么做。 很多帮助的荣誉,我真的很感激!
{
"total": 4,
"data": [
{
"descriptor": "",
"multiInstance": false,
"active": false
},
{
"descriptor": "Apparel",
"multiInstance": true,
},
{
"descriptor": "abcd123",
"multiInstance": false,
},
{
"descriptor": "abcd",
"multiInstance": false,
}
]
}
这是我要使用的课程。 我需要一个班级清单。
public class customObject {
@JsonProperty(value = "descriptor")
private String descriptor;
@JsonProperty(value = "multiInstance")
private Boolean multiInstance;
//getters and setters
}
编辑:
我在这里用它。
CustomObjectResponse WDCOResponse =资源.type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).header(“ Authorization”,getToken())。get(WDCOResponse.class);
但是它仍然无法正常工作。
Edit2:想通了! 谢谢大家。 :)
我必须添加注释来告诉它忽略是否未找到内容,我返回的某些JSON格式不完全,因为并非所有字段都是绝对必要的。
如果您提供的对象是传递给控制器的对象,那么您将需要另一个包装对象来包含如下列表:
public class CustomRequest {
@JSonProperty(value = "total");
private Integer total;
@JsonProperty(value = "data")
private List<CustomObject> data;
// getters/setters
}
public class CustomObject {
@JsonProperty(value = "descriptor")
private String descriptor;
@JsonProperty(value = "multiInstance")
private Boolean multiInstance;
// getters/setters
}
然后,您的控制器将只具有显示RequestBody为CustomRequest类的注释:
@Controller
public class JSONController {
@RequestMapping(value="sendData")
public @ResponseBody CustomResponse sendData(
@RequestBody CustomRequest request)
{
return null;
}
}
如果您仍然遇到错误,请提供详细的错误或问题。 谢谢!
您可以像这样使用POJO:
public class Response {
int count;
List<customObject> data;
}
并从那里访问数据:
for (customObject ob : response.data) {
// process ig
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.