昨天稍微总结了一下对json的认识,今天用起来,才知道自己其实对json数据格式什么都不懂,对json最基本的json字符串、数组、对象这些都有点傻傻分不清!今天要将前端的十几个字段拼成json对象,再转换成json字符串传到后台,最后还要对后台传回来的json字符串进行解析调用!记录一下关键点吧!
1、自定义json对象时,采取了类似以下方式
var i = 0;
var name = "name" + i;
jsonObj = {name: "123", name: "456"};
json对象jsonObj中的name在传到后台的时候不会是name0,而是name字符串,就是说定义时json对象中的key不能是变量!
2、json字符串转换成json对象时,一般可以用eval函数,但当转换成的对象有多个时,使用这个函数只能得到第一个,可以使用以下的方法去遍历(明天补上,手机码字太要命了o(╯□╰)o)
--------------------------------------------------------------这里是分割线----------------------------------------------------------------------------------------
如当在js页面取到后台的json字符串是这样的形式时:
var respone ={data:[{"name1":"aaa","name2":"bbb","name3":"ccc"},
{"name4":"aaa","name5":"bbb","name6":"ccc"},
{"name7":"aaa","name8":"bbb","name9":"ccc"},
{"name10":"aaa","name11":"bbb","name12":"ccc"},
{"name13":"aaa","name14":"bbb","name15":"ccc"},
{"name16":"aaa","name17":"bbb","name18":"ccc"}]}
可以这样处理:var result = eval("(" + respone + ")");
$.each(result, function(index, jsonObj){
$.each(jsonObj, function(objIndex, obj){
$.each(obj, function(key, value){
alert("key= "+ key ); //遍历显示key值,如"name1"、"name2"等
alert("value= " + value ); //遍历显示value, 如"name1"对应的"aaa"、"name2"对应的"bbb"等
})
})
})