Trying to demarshal JSON response using Java Classes

问题描述 投票:0回答:0

我正在尝试使用 Java 类对 JSON 响应进行解组,我是 Java 的新手,所以这可能是我犯的一个小学生错误。

JSON 响应是:

[{
    "index": 514042,
    "source_list_name": "insurance_group",
    "allow_multiple_account_associates": false,
    "source_list_index": 10078,
    "fields": {
        "type": "e212"
    },
    "is_editable": false,
    "allow_associates": false
}, {
    "is_editable": true,
    "fields": {
        "type": "i120"
    },
    "allow_associates": false,
    "allow_multiple_account_associates": false,
    "index": 533402
}, {
    "is_editable": true,
    "fields": {
        "type": "i119"
    },
    "allow_associates": false,
    "allow_multiple_account_associates": false,
    "index": 514519
}]

Java类是:

package com.ls.json.pack

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@AllArgsConstructor
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class EmploymentSalaryTypeResponse {

    public class Fields{
        private String type;
    }

    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    public class Root{
        private int index;
        private String source_list_name;
        private boolean allow_multiple_account_associates;
        private int source_list_index;
        private Fields fields;
        private boolean is_editable;
        private boolean allow_associates;
    }
}

我得到的错误是:

Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize type

com.ls.json.pack.EmploymentSalaryTypeResponse
from Array value (token
JsonToken.START_ARRAY
) 的值 在[来源:(org.springframework.core.io.buffer.DataBufferInputStream);行:1,列:1] 在 com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) 在 com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1746) 在 com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1520) 在 com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1467) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeFromArray(BeanDeserializer.java:650) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:211) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:187)

你能看出我哪里错了吗?

我试图重新上课,但没有快乐

java json marshalling unmarshalling
© www.soinside.com 2019 - 2024. All rights reserved.