JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。· 在JSON中,有两种结构:对象和数组。 1.对象 一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。 packJson = {"name":"caibaojian.com", "password":"111"} 2.数组 packJson = [{"name":"caibaojian.com", "password":"111"}, {"name":"tony", "password":"111"}]; 数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。 JSON对象和JSON字符串的转换 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如: JSON字符串: var jsonStr = '{"name":"caibaojian", "password":"1111"}'; JSON对象: var jsonObj = {"name":"caibaojian.com", "password":"1111"}; 1、String转换为Json对象(eval) var jsonObj = eval('(' + jsonStr + ')'); 2.Json对象转换为String字符串 //code from http://caibaojian.com/jquery-each-json.html var jsonStr = jsonObj.toJSONString(); var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}]; for(var o in data){ alert(o); alert(data[o]); alert("text:"+data[o].name+" value:"+data[o].age ); } js完成。或是 <script type="text/javascript"> function text(){ var json = {"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"value/":/"10/"},{/"text/":/"邵家湾/",/"value/":/"13/"}]"} json = eval(json.options) for(var i=0; i<json.length; i++) { alert(json[i].text+" " + json[i].value) } } </script> 或者 var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(JSON.parse(json), function(idx, obj) { alert(obj.tagName); }); //or $.each($.parseJSON(json), function(idx, obj) { alert(obj.tagName); }); 问题: JSON 字符串 下面的例子中,声明了一个JSON字符串(随附单或双引号)直接地。 复制代码 var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(json, function(idx, obj) { alert(obj.tagName); }); 在Chrome中,它显示在控制台下面的错误: Uncaught TypeError: Cannot use 'in' operator to search for '156' in [{"id":"1","tagName":"apple"}... 解决方案:JSON字符串转换为JavaScript对象。 要修复它,通过标准JSON.parse()或jQuery 的 $.parseJSON 将其转换为JavaScript对象。 var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(JSON.parse(json), function(idx, obj) { alert(obj.tagName); }); //or $.each($.parseJSON(json), function(idx, obj) { alert(obj.tagName); }); 还有一种就是使用eval
ajax回调json数据遍历取出数据
猜你喜欢
转载自blog.csdn.net/jaryle/article/details/78594002
今日推荐
周排行