Json Mapping Exception can not deserialize instance out of START_ARRAY token

后端 未结 2 1226
孤街浪徒
孤街浪徒 2020-12-15 20:34

I\'m trying to parse my json request to my model. I dunno what is wrong in this code. Syntax of json looks correct and annotations on Java model also. I don\'t know why I\'m

2条回答
  •  醉梦人生
    2020-12-15 21:17

    You have declared parameters as a single object, but you are returning it as an array of multiple objects in your JSON document.

    Your model currently defines the parameters node as a ParametersType object:

    @JsonProperty( "parameters" )
    @XmlElement( required = true )
    protected ParametersType parameters;
    

    This means your model object is expecting a JSON document that looks like the following:

    {
        "templateId": "123",
        "parameters": {
                "parameter": [
                    {
                        "key": "id",
                        "value": "1",
                        "type": "STRING_TYPE"
                    },
                    {
                        "key": "id2",
                        "value": "12",
                        "type": "STRING_TYPE"
                    }
                ]
            },
        "documentFormat": "PDF"
    }
    

    But in your JSON document you are returning an array of ParametersType objects. So you need to change your model to be a list of ParametersType objects:

    @JsonProperty( "parameters" )
    @XmlElement( required = true )
    protected List parameters;
    

    The fact that you are returning an array of ParametersType objects is why the parser is complaining about not being able to deserialize an object out of START_ARRAY. It was looking for a node with a single object, but found an array of objects in your JSON.

提交回复
热议问题