SPRING3 controller接收json参数的问题,请大家看看
就直接问大家吧,如果JSON数据非常复杂,想把这个作为参数传进SPRING的控制层里指定URL的方法,那么方法里的接收参数的类型应该是什么。我写个例子吧
json的数据是:
{
     "info": "basic",
     "name": "gold",
     "age": "18",
     "career": [
         "红星小学",
         "五星红旗职校",
         "城管高等专科学院"
     ],
     "family": [
         {
             "position": "father",
             "name": "dd",
             "age": "800"
         },
         {
             "position": "mother",
             "name": "mm",
             "age": "790"
         }
     ]
}
暂时就看上去这么简单吧。
接下去是spring controller的调用 我用3.0.5的SPRING,配置好了httpMessageConverter的对象bean
         @ResponseBody
	@RequestMapping(value="/add", method=RequestMethod.GET)
	public String doAdd(
List info, Model model) throws Exception{
红色粗体的地方,就是报错的地方,用list做参数不行,我试过MAP也不行,网上很多示例都是返回大块的JSON数据,而不是接收大块的JSON数据,不知道大家在碰到这样的情况时候,是怎么处理的
------解决方案--------------------
用String类型,在转换成List或MAP对象。
------解决方案--------------------你的意思是想传递一个json 字符串用什么类型接收吗?
不知道我理解的对不对、
那就传递用String 类型接收、然后在用net.sf.json.JSONObject.fromObject(string)  转成json
------解决方案--------------------作为参数传进SPRING的控制层,你要记住,画面中js传入controller中的肯定是字符串,而spring 3中,controller中却可以直接将封装好的资料塞入list或者map,在画面直接可以转为json格式。
你这个是相反的,直接这样是不可以的。