UserCar:
package com.cyberway.goparking.user.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import com.cyberway.platform2.support.orm.model.BusinessEntityWithOrganization;
import com.cyberway.platform2.user.model.MemberUser;
/**
* 用户车牌表
* @author yyzhou
* @version v1.0
*/
@Entity
@Table(name = "GP_UserCar")
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class UserCar extends BusinessEntityWithOrganization{
private static final long serialVersionUID = -1465239840030123090L;
/**
* 用户Id
*/
@ManyToOne(targetEntity = MemberUser.class, fetch = FetchType.LAZY)
@JoinColumn(name = "userId", referencedColumnName = "id")
private MemberUser memberUser;
/**
* 车牌号
*/
@Column
private String cardNo;
/**
* 是否首选(默认为 false)
*/
@Column
private Boolean isDefault = false;
/**
* 是否关闭(1:关闭,0:开启)
*/
@Column
private Boolean hasDeleted = true;
public MemberUser getMemberUser() {
return memberUser;
}
public void setMemberUser(MemberUser memberUser) {
this.memberUser = memberUser;
}
public Boolean getIsDefault() {
return isDefault;
}
public void setIsDefault(Boolean isDefault) {
this.isDefault = isDefault;
}
public Boolean getHasDeleted() {
return hasDeleted;
}
public void setHasDeleted(Boolean hasDeleted) {
this.hasDeleted = hasDeleted;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
}
UserCarList:
package com.cyberway.goparking.utils;
import java.util.List;
import com.cyberway.goparking.user.model.UserCar;
public class UserCarList {
private List<UserCar> userCar;
public List<UserCar> getUserCar() {
return userCar;
}
public void setUserCar(List<UserCar> userCar) {
this.userCar = userCar;
}
}
测试代码:
/**
* List测试
*/
@RequestMapping(value = "/listJson")
public @ResponseBody Object listJson(HttpServletRequest request,String userId) throws Exception
{
String str = URLDecoder.decode(request.getParameter("parm"),"UTF-8");
System.out.println(str);
List<UserCar> list = null;
UserCar userCar = null;
UserCarList userCarList = objectMapper.readValue(str, UserCarList.class);
List<UserCar> uc = userCarList.getUserCar();
return new DataResult("xx");
}
异常:
{"userCar":[{"cardNo":"1234","isDefault":"1"}]}
WARN :[11/02 21:11:07,463] com.cyberway.goparking.user.controller.UserController(qtp4089278-22); :发生异常
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: {"userCar":[{"cardNo":"1234","isDefault":"1"}]}; line: 1, column: 13] (through reference chain: com.cyberway.goparking.utils.UserCarList["userCar"]->java.util.ArrayList[0])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:854)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:62)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3703)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2006)
at com.fasterxml.jackson.core.JsonParser.readValueAs(JsonParser.java:1506)
at com.cyberway.platform2.support.hibernate.type.json.jackson.HibernateEntityDeserializer.deserialize(HibernateEntityDeserializer.java:22)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:217)
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:520)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:256)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:125)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3731)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2724)
at com.cyberway.goparking.user.controller.UserController.listJson(UserController.java:417)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:111)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:806)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:729)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1366)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
at com.cyberway.platform2.security.core.web.DataInitFilter.doFilterInternal(DataInitFilter.java:76)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at com.cyberway.platform2.security.core.web.RequestInterceptor.doFilterInternal(RequestInterceptor.java:51)
at com.cyberway.platform2.support.web.filter.AbstractFilter.doFilter(AbstractFilter.java:28)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at com.cyberway.platform2.user.services.OnlineUserServiceImpl.doFilterInternal(OnlineUserServiceImpl.java:127)
at com.cyberway.platform2.support.web.filter.AbstractFilter.doFilter(AbstractFilter.java:28)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
按照网上方法做的 一直行不通。但用JsonObject就行 谁能告诉我哪里错了。谢谢了 弄了一天了

每次走到这一步就报错: UserCarList userCarList = objectMapper.readValue(str, UserCarList.class);