Java 原因:org.codehaus.jackson.map.JsonMappingException:无法反序列化com.model.user的实例,超出起始\u数组标记
我将json字符串从restclient传递给模型对象用户的resteasy webservice 我已经设置了Content Type=application/json 我在正文中的json字符串如下所示Java 原因:org.codehaus.jackson.map.JsonMappingException:无法反序列化com.model.user的实例,超出起始\u数组标记,java,json,model,rest-client,Java,Json,Model,Rest Client,我将json字符串从restclient传递给模型对象用户的resteasy webservice 我已经设置了Content Type=application/json 我在正文中的json字符串如下所示 { "id": "100", "email": "email", "add": [ { "lastName": "lastName", "firstName": "firstName" }
{
"id": "100",
"email": "email",
"add": [
{
"lastName": "lastName",
"firstName": "firstName"
},
{
"firstName": "firstName",
"lastName": "lastName"
}
]
}
如果我删除addarray对象,如下所示,那么我将得到预期的响应
{
"id": "100",
"email": "email",
}
当我尝试发送add array时,服务器抛出一个异常,表示
Caused by: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of com.model.add out of START_ARRAY token
我也试过这种方法,但不起作用
{
"id": "100",
"email": "email",
"lastName": "Something Four",
"firstName": "Something Five"
}
然后它给出下面的错误
Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "lastName" (Class com.model.user), not marked as ignorable
下面是我的模型对象
public class user implements Serializable {
@Id
@Column(name="Id", unique=true, nullable=false)
private int id;
@Column(name="email", nullable=true, length=60)
private String email;
@ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name="Id", nullable=false)
private add add;
}
public class add implements Serializable {
@Id
@Column(name="Id", unique=true, nullable=false)
private String id;
@Column(name="LastName", nullable=true, length=128)
private String lastName;
@Column(name="FirstName", nullable=true, length=128)
private String firstName;
}
我的服务班
@POST
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response addAccount(@FormParam("id") String id,
@FormParam("lastName") String lastName,
@FormParam("firstName") String firstName,
@FormParam("email") String email{
user.setId(id);
add.setLastName(lastName);
add.setFirstName(firstName);
user.setEmailAddress(email);
}
有人能帮我把一个模型对象作为json字符串中的数组传递到另一个模型对象中吗?我得到了相同的错误,我找到了解决方案;我的模型课上缺少了getter和setter。
这可能会解决这个问题。我得到了相同的错误,我找到的解决方案;我的模型课上缺少了getter和setter。
这可能会解决这个问题。请向我们展示您发送的JSON。Jackson在这里告诉你这不是一个JSON数组。这是我正在使用的JSON,{“id”:“100”,“email”:“email”,“add”:[{“lastName”:“lastName”,“firstName”:“firstName”},{“firstName”:“firstName”,“lastName”:“lastName”}我已经使用jsonlint对其进行了验证,并将其显示为有效的json。\n这不是问题所在。我问你删除的add数组发送了什么。你如何解释你的第一条消息?“无法反序列化com.model.add out of START_ARRAY token的实例”再次阅读您的第二条消息,它还说:“无法识别的字段“lastName”(Class com.model.user),未标记为可忽略”请向我们显示您发送的JSON。Jackson在这里告诉你这不是一个JSON数组。这是我正在使用的JSON,{“id”:“100”,“email”:“email”,“add”:[{“lastName”:“lastName”,“firstName”:“firstName”},{“firstName”:“firstName”,“lastName”:“lastName”}我已经使用jsonlint对其进行了验证,并将其显示为有效的json。\n这不是问题所在。我问你删除的add数组发送了什么。你如何解释你的第一条消息?“无法反序列化com.model.add out of START_ARRAY token的实例”再次读取第二条消息,它还说:“无法识别的字段“lastName”(Class com.model.user),未标记为可忽略”这不是答案。所以,在评论部分写下这个。请参阅此链接-这不是答案。所以,在评论部分写下这个。请参阅此链接-