json格式
在JSON中,有两种结构:对象和数组。
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
前端解析json
springmvc想要返回json类型数据时,需要在方法或者返回参数上加上@ResponseBody
加上responsebody后,会将方法返回的值加入到HTTP response body中
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
注意:如果前端ajax设置返回的类型为text,那么返回的json会以字符串格式返回,如果设置为json,那么json字符串会自动被转化为json对象返回,下面案例都是设置返回类型为json
如果想要手动将json字符串转化为json对象,有以下方法
var obj = eval('(' + str + ')'); ,str为json字符串
var obj = JSON.parse(str);
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
解析json的几种案例
如果返回的是String,那么前端可直接接收到string类型的数据
如果返回的是对象类型的数据,那么前端接收到的是一个json对象,如果要取他的属性值,可以直接通过对象名.属性名获取。
例,返回一个user对象,前端获得的是
如果返回的是list集合类型的数据,那么前端接收到的是一个json数组,如果要获取他的值,通过数组名【下标】.属性名就可获取
例,返回一个List<User>对象,前端获取的是
如果返回的是map类型的数据,那么前端接收的是一个大的json对象,如果要获取他的值,通过对象名.属性名会获取到大的对象中的属性值对应的小的对象,通过对象名.属性名.属性名可直接获取到小对象中的属性值
例,返回一个map对象,前端获取的是
不要忘记若要返回json数据,需要在配置文件中配置<mvc:annotation-driven/>