JSON.parse()、eval()和JSON.stringify()
1.什么是JSON?
JSON全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON 与XML具有相同的特性,是一种数据存储格式,但是JSON相比XML 更易于人编写和阅读,更易于生成和解析。
2.json对象和json字符串
json对象可以直接调用其属性【对象.属性进行调用】,json字符串需转化为json对象才可以调用其属性
1 var person={"name":"tom","sex":"男","age":"24"}//json对象 2 console.log(person.name);//在控制台输出tom 3 alert(typeof(person));//object 4 5 var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串 6 console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"} 7 alert(typeof(b));//string
3. eval() 和JSON.parse()将json字符串解析成json对象
JSON.parse()可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。
var cardList = eval('('+cards+')'); var cardList = JSON.parse(cards);
4.JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串,前台JavaScript 封装请求参数时经常用到。
//定义变量
var cards={
name : "tianming",
age : 18
};
var cardList = JSON.stringify(cards)
5、js文件中发Ajax请求、post请求、get请求
1 var mydata = {username:$("#username").val(), content:$("#content").val()};//定义变量 2 $.ajax({ 3 type: "GET", 4 url: "test.json", 5 data: JSON.stringify(mydata),//使用变量 6 dataType: "json", 7 contentType:"application/json", 8 //执行成功的回调函数 9 success: function(data){ 10 console.log(data); 11 }, 12 //执行失败或错误的回调函数 13 error:function(error){ 14 console.log(error); 15 } 16 });
1 var sendData = { 2 phoneNo : phoneNo, 3 content : content, 4 isAllow :isAllow 5 }; 6 7 $.post( ctx+"teas/saveTeasing.do",JSON.stringify(sendData), function( data ) { 8 console.log( data); 9 }, "json");
6、springmvc项目中,后台【@RequestBody TblGiftDto tblGiftDto】接收前台传入的参数是json字符串。
7、@ResponseBody,该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用。