JSON格式与Ajax的使用
(一)JSON格式
(1)JSON介绍
- JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于
ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 - JSON是一个标记符的序列。这套标记符包含六个构造字符({、}、[、]、:、,)、字符串、数字和三个字面名。
- JSON值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。
以上这五种都是符合JSON格式的数据。 但是我们最常用的是第一种,对象形式,因此也有多人分不清python字典,js对象和JSON对象的区别。
对于JSON格式具体和python字典来对比的话,有这样几个细节点需要大家注意:
- JSON中key位置的值只能是字符串,JSON中的字符串必须是双引号
- python中的字典,键是不可变数据类型,值没有固定要求
- js字典,键可以是数字、字符串或布尔值
(2)JS、Python与JSON类型转换
①JS与JSON的转换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js与json类型转换</title>
</head>
<body>
<script>
//定义一个js对象
js_obj = {
'name':'张三','age':18}
// js对象转成json格式的数据 字符串
str = JSON.stringify(js_obj)
console.log(str) // 输出单引号变为了双引号{"name":"张三","age":18}
// console.log(typeof str); // 类型是string
// json格式的数据转成js对象 object对象
obj1 = JSON.parse(str)
console.log(obj1); //输出双引号变为了单引号{name: '张三', age: 18}
console.log(typeof obj1); //类型是object
</script>
</body>
</html>
②Python与JSON的转换
python代码:
import json #导入json模块
# dic = {"name":"子冧","age":18,"bool":True}
# print(type(dic)) # <class 'dict'>
# 字典类型
di = {
'name':'张三','age':18,'sex':'男'}
# 转成json格式数据
jd = json.dumps(di)
# print(jd) # {"name": "\u5b50\u51a7", "age": 18, "sex": "\u7537"}
# print(type(jd)) # <class 'str'>
# 转回python的字典
dic = json.loads(jd)