json知识基础
json中对象数据通过"{ }"来标识,一个{}代表一个对象。如{"name": "matthew"}。
json数据使用“[]”,标识数组。一般的json数据就是一个json数组。如:json = ["name": "matthew", "age": "18"]。
json数组和对象间可以互相嵌套。
json数据还有json字符串。使用单引号或者双引号括起来的就是json字符串。
json数据解析获取
json数据解析方案:
普通js数据进行JQuery对象处理是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象。
注意:eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库。
使用$.getJSON()方法。
使用parseJSON,这需要一个标准的JSON字符串,并返回生成的JavaScript对象。
对象类型转为json数据 JSON.stringify(object)。
重点:json数据传递到后台时需要对字符串进行序列化。
contentType:“application/json“之后,向后台发送数据的格式必须为json字符串。不添加 contentType:“application/json“的时候可以向后台发送json对象形式。另外,当向后台传递复杂json的时候,同样需要添加 contentType:“application/json“,然后将数据转化为字符串。同时dataType为json。
springboot接收json两种特殊数据方式:
使用入参前加@RequestParam 注解 ,value和前端传的json字段对应上。这样可以在jQuery中直接传json对象而不需要将json对象进行序列化。
通过@RequestBody 接收json,直接通过@RequestBody 的方式,直接将json的数据注入到了JSONObject里面。然后使用封装的方法获取josn对象中的value。或者直接使用对应的bean进行获取,@RequestBody会进行对应的拆箱填充数据。
说明:@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。 通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。