先说JSON(JavaScript Object Notation),JSON是用字符串来表示Javascript对象,是一种轻量级的数据交换格式。
请大家记住一句话:json字符串就是js对象的一种表现形式(字符串的形式)
需要注意的是,json对象是用双引号的,不能用单引号。
json的数据类型和python的都很像,在python中,python对象转换json对象,可以使用json.dumps()转成json字符串进行保存(因为将dict直接保存到文本),再使用json.loads()转成python对象。
json对象也有相应的方法做增删改查,和python差不多。
将后端python对象转换为前端json对象过程如下图:
让我们看一个带方法的json对象(object):
var person = {"name":"alex", "sex":"men", "teacher":{ "name":"tiechui", "sex":"half_men", }, "bobby":['basketball','running'], "getName":function() { return 80;} };alert(person.name);alert(person.getName());alert(person.teacher.name);alert(person.bobby[0]);
使用ajax时,Django向前端发送字符串,return HttpResponse(“ok”),此时括号中只能是字符串,当要想传输其他类型如dict,需要先json.dumps(dict)转换成json字符串,再传到前端,前端通过 parse() 来讲字符串转换成json对象来使用。
parse()和.stringify() 说明:
parse() 用于从一个json字符串中解析出json对象,如var str = '{"name":"yuan","age":"23"}'结果:JSON.parse(str) ------> Object {age: "23",name: "yuan"}stringify()用于从一个json对象解析成json字符串,如var c= {a:1,b:2} 结果: JSON.stringify(c) ------> '{"a":1,"b":2}'注意1:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。注意2:a={name:"yuan"}; //okb={'name':'yuan'}; //okc={"name":"yuan"}; //okalert(a.name); //okalert(a[name]); //undefinedalert(a['name']) //ok
Ajax实例:
参考资料:
未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。