最近是在使用fastjson时遇到了一个问题,一个前端JSON.stringify()生成的json串,在传给springMVC的controller之后,发现json串的属性顺序不同,会影响整个请求能否送达到controller。例如:{"list":"","time":"",name:"",member:""}这样的,是无法送到到controller的,控制台会提示“WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: not close json text, token : ,; nested exception is com.alibaba.fastjson.JSONException: not close json text, token : ,
”,但只需要保证list不出现在第一个属性,例如换成{"time":"","name":"","member":"","list":""},则可以正常送达到controller。
不清楚java,如果是顺序问题导致的,那么客户端json属性名顺序得和controller的先后一致,JSON.stringify后不会更改json对象属性名称的先后
难道
list
是关键字?
{"list":"","time":"",name:"",member:""}
这一段完整的内容贴出来瞅瞅?
因为fastjson是无序的,可以new一个LinkedHashMap
客户端json属性名顺序得和controller顺序一致