Java 杰克逊泽西JSON
我正在尝试使用Jersey和Jackson(尽管任何其他JSON去marshalling方法都可以)以某种形式(无论是POJO还是其他表示)将其引入我的系统 基本上我只需要数据部分。我试着在列表中使用GenericTypes,但这是一个嵌套列表,我不知道该怎么做。非常感谢你的帮助,我真的很感激Java 杰克逊泽西JSON,java,json,jersey,jackson,Java,Json,Jersey,Jackson,我正在尝试使用Jersey和Jackson(尽管任何其他JSON去marshalling方法都可以)以某种形式(无论是POJO还是其他表示)将其引入我的系统 基本上我只需要数据部分。我试着在列表中使用GenericTypes,但这是一个嵌套列表,我不知道该怎么做。非常感谢你的帮助,我真的很感激 { "total": 4, "data": [ { "descriptor": "", "multiInstance": f
{
"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 WDCorResponse=
资源
.type(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.header(“Authorization”,getToken()).get(WDCOResponse.class)
但它仍然不起作用
编辑2:
我明白了!谢谢大家。:)
我不得不添加注释,告诉它忽略如果找不到什么,我要返回的一些JSON没有完全形成,因为并非所有字段都是绝对必要的。您可以使用POJO,如:
public class Response {
int count;
List<customObject> data;
}
如果您提供的对象是要传递给控制器的对象,那么您还需要一个包装器对象来包含如下列表:
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
}
如果您仍然收到错误,请提供详细的错误或问题。谢谢 你试过使用吗?所以我实际上在尝试格式化来自另一个API的JSON信息。我现在正在构建一个客户端API。我在做你所做的,但它不起作用,我只是跳出来。我假设存在一个异常,所以我将通过添加一个将打印出来的异常捕获器来研究这个问题。
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
}
@Controller
public class JSONController {
@RequestMapping(value="sendData")
public @ResponseBody CustomResponse sendData(
@RequestBody CustomRequest request)
{
return null;
}
}