我正在尝试将json请求解析为模型。我不知道这段代码有什么问题。json的语法看起来正确,并且在Java模型上也有注释。我不知道为什么会出现如下错误:
Caused by: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of ParametersType out of START_ARRAY token
(through reference chain: Document["parameters"])
Java模型:
@JsonIgnoreProperties( ignoreUnknown = true )
public class Document {
@XmlElement( required = true )
@JsonProperty( "templateId" )
protected String templateId;
@JsonProperty( "parameters" )
@XmlElement( required = true )
protected ParametersType parameters;
@JsonProperty( "documentFormat" )
@XmlElement( required = true )
protected DocumentFormatType documentFormat;
...}
@JsonIgnoreProperties( ignoreUnknown = true )
public class ParametersType {
@JsonProperty( "parameter" )
protected List<ParameterType> parameter;
...}
@JsonIgnoreProperties( ignoreUnknown = true )
public class ParameterType {
@XmlElement( required = true )
@JsonProperty( "key" )
protected String key;
@XmlElement( required = true )
@JsonProperty( "value" )
@XmlSchemaType( name = "anySimpleType" )
protected Object value;
@JsonProperty( "type" )
@XmlElement( required = true, defaultValue = "STRING_TYPE" )
protected ParamType type;
....}
杰森代码:
{
"templateId": "123",
"parameters": [
{
"parameter": [
{
"key": "id",
"value": "1",
"type": "STRING_TYPE"
},
{
"key": "id2",
"value": "12",
"type": "STRING_TYPE"
}
]
}
],
"documentFormat": "PDF"
}
您已声明parameters
为单个对象,但是将其作为JSON文档中多个对象的数组返回。
您的模型当前将parameters节点定义为一个ParametersType
对象:
@JsonProperty( "parameters" )
@XmlElement( required = true )
protected ParametersType parameters;
这意味着您的模型对象需要一个如下所示的JSON文档:
{
"templateId": "123",
"parameters": {
"parameter": [
{
"key": "id",
"value": "1",
"type": "STRING_TYPE"
},
{
"key": "id2",
"value": "12",
"type": "STRING_TYPE"
}
]
},
"documentFormat": "PDF"
}
但是在JSON文档中,您将返回一个ParametersType
对象数组。因此,您需要将模型更改为ParametersType对象的列表:
@JsonProperty( "parameters" )
@XmlElement( required = true )
protected List<ParametersType> parameters;
您返回一个ParametersType对象数组的事实就是为什么解析器抱怨无法从START_ARRAY中反序列化对象。它正在寻找具有单个对象的节点,但在JSON中找到了一个对象数组。
我需要向网络服务发送帖子请求,但它在异常后返回。 实际服务器响应如下: 我根据以下内容发送请求 我的代码
给定以下JSON文件: 我试图使用Jackson对象映射器访问JSON文件中的值。具体如下:
我尝试使用jacksonapi解析json,并提供以下详细信息。但我错了。请查找以下代码和堆栈跟踪的详细信息。 JSON 控制器类 下面这个类是我的bean类。PublisheData.java 发布数据列表.java 我收到以下错误。
下面是POJO类: 主要功能如下:
问题内容: 我正在使用来自外部合作伙伴的API。不幸的是,返回的响应似乎没有固定的结构。理想情况下,API合同意味着它不会被违反,但是这种情况一直在发生。 无论如何,所以发生的事情是JSON响应中的字段主要是一个地图,但有时却是一个列表。 例如,假设以下是我通常得到的响应: 但是在极少数情况下,我会得到列表,而不是地图或其他违反合同的情况。 例如: 我正在使用杰克逊将此响应映射到POJO。在某些情