python之ajax

一 AJAX预备知识:json进阶

1.1 什么是JSON?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON用字符串来表示Javascript对象;

请大家记住一句话:json字符串就是js对象的一种表现形式(字符串的形式)

既然我们已经学过python的json模块,我们就用它来测试下json字符串和json对象到底是什么

import json
i=10
s='hello'
t=(1,4,6)
l=[3,5,7]
d={'name':"yuan"}

json_str1=json.dumps(i)
json_str2=json.dumps(s)
json_str3=json.dumps(t)
json_str4=json.dumps(l)
json_str5=json.dumps(d)

print(json_str1)   #'10'
print(json_str2)   #'"hello"'
print(json_str3)   #'[1, 4, 6]'
print(json_str4)   #'[3, 5, 7]'
print(json_str5)   #'{"name": "yuan"}'
View Code

这里面的json_str就是json字符串;

那么json字符串里都可以放哪些值呢?

JSON字符串内的值:

  • 数字    (整数或浮点数)
  • 字符串 (在双引号中)
  • 逻辑值 (true false
  • 数组    (在方括号中)
  • 对象    (在花括号中,引号用双引)
  • null    

        看着是不是有点眼熟啊,对了,这就是咱们js的数据对象;不管是python还是其它语言,它们都有自己的数据类型,但如果要处理成json字符串那么,就要把数据换转成js对应的数据对象(比如python的元组就被处理成了数组,字典就被处理成object),再加上引号就是咱们的json字符串了;
       前端接受到json字符串,就可以通过JSON.parse()等方法解析成json对象(即js对象)直接使用了。

       之所以称json对象为js的子集,是因为像undefined,NaN,{'name':'yuan'}等都不在json对象的范畴。

1.2 python与json对象的对应:

        python         -->        json
        dict                      object
        list,tuple                array
        str,unicode               string
        int,long,float            number
        True                      true
        False                     false
        None                      null

让我们看一个带方法的json对象:

 1 var person = {"name":"alex",
 2               "sex":"men",
 3               "teacher":{
 4                  "name":"tiechui",
 5                   "sex":"half_men",
 6               },
 7               "bobby":['basketball','running'],
 8 
 9                "getName":function() {return 80;}
10               };
11 alert(person.name);
12 alert(person.getName());
13 alert(person.teacher.name);
14 alert(person.bobby[0]);

person是一个json对象,因为它满足json规范:在json六大范畴且引号双引!

猜你喜欢

转载自www.cnblogs.com/yehost/p/10296660.html
今日推荐