Java 杰克逊泽西JSON

Java 杰克逊泽西JSON,java,json,jersey,jackson,Java,Json,Jersey,Jackson,我正在尝试使用Jersey和Jackson(尽管任何其他JSON去marshalling方法都可以)以某种形式(无论是POJO还是其他表示)将其引入我的系统 基本上我只需要数据部分。我试着在列表中使用GenericTypes,但这是一个嵌套列表,我不知道该怎么做。非常感谢你的帮助,我真的很感激 { "total": 4, "data": [ { "descriptor": "", "multiInstance": f

我正在尝试使用Jersey和Jackson(尽管任何其他JSON去marshalling方法都可以)以某种形式(无论是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 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;
    }

}