如何在Java POJO中转换json字符串

时间:2016-02-24 16:39:37

标签: java json jackson

我试图将一个json字符串从WS转换为我自己的Java POJO,但我找不到方法。

以下是我从WS获得的回复:

​

我尝试了不同的方式,例如:

{
    "result": ["", {
        "dataset": [{
            "PLCode": "027",
            "PLType": "P",
            "PList": "BOSCH",
            "PartNumber": "0986452041",
            "Description": "FILTRO OLIO",
            "F": "",
            "DC": "F46",
            "Price": "12,2",
            "Picture": "",
            "N": "",
            "O": "027"
        }, {
            "PLCode": "484",
            "PLType": "P",
            "PList": "BRC",
            "PartNumber": "BRF1101",
            "Description": "FILTRO OLIO AVVITABILE",
            "F": "",
            "DC": " ",
            "Price": "9,11",
            "Picture": "",
            "N": "",
            "O": "484"
        }]
    }]
}

当我尝试解析时:      测试测试=新测试();      test = objectMapper.readValue(message,Test.class);

我收到了下一个错误:

public class Test {

    private Result result;

    public Result getResult() {
        return result;
    }

    public void setResult(Result result) {
        this.result = result;
    }
}

public class Result {

    private String errorDescription;

    private List<Dataset> dataset;

    public String getErrorDescription() {
        return errorDescription;
    }

    public void setErrorDescription(String errorDescription) {
        this.errorDescription = errorDescription;
    }

    public List<Dataset> getDataset() {
        return dataset;
    }

    public void setDataset(List<Dataset> dataset) {
        this.dataset = dataset;
    }
}

你能帮我吗?

提前致谢

2 个答案:

答案 0 :(得分:4)

您的Test对象包含一个Result对象,但JSON的result字段包含一个对象数组。数组中的项是一个字符串,后面跟一个Result对象。

答案 1 :(得分:0)

在json中

下面的

表示对象

{
    color: "red",
    value: "#f00"
}
下面的

表示数组

[
    {
        color: "red",
        value: "#f00"
    },
    {
        color: "green",
        value: "#0f0"
    }
]

按照这种表示法

结果应该是测试类中的数组/列表