什么是JSON?
1.JSON是指JavaScript对象表示法(JavaScript Object Notation)
2.JSONS是轻量级的文本数据交换格式 (全后端交互)
3.JSON独立于语音 (是不是可也看成正则一样的东西,每一种语言都可也用)
4.JSON具有自我描述性,更易理解
几乎所有编程语言都解析JSON的库,而在JavaScript中,我们可以直接使用JSON,因为JavaScript内置了JSON的解析。把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能通过网络传递给其他计算机。
如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScrip对象,就可以在JavaScript中直接使用这个对象了.
序列化
var xiaoming = {
name: '小明',
age: 14,
gender: true,
height: 1.65,
grade: null,
'middle-school': '\"W3C\" Middle School',
skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};
var s = JSON.stringify(xiaoming);
console.log(s);
反序列化
拿到一个JSON格式的字符串,我们直接用JSON.parse()把它变成一个JavaScript对象:
JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]
JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}
JSON.parse('true'); // true
JSON.parse('123.45'); // 123.45
Python中的json模块如何使用
# -*- coding:utf-8 -*-
import json
s = '{"name": "小赵", "age": 18}'
# 把字符串反序列化成python格式的数据
strs = json.loads(s)
print(strs, type(strs))
# 把字典格式序列化成字符串
strs1 = json.dumps(strs)
print(strs1, type(strs1))
{'age': 18, 'name': '小赵'} <class 'dict'>
{"age": 18, "name": "\u5c0f\u8d75"} <class 'str'>
注意:
合格的JSON对象
["one", "two", "three"]
{ "one": 1, "two": 2, "three": 3 }
{"names": ["张三", "李四"] }
[ { "name": "张三"}, {"name": "李四"} ]
不合格的JSON对象
{ name: "张三", 'age': 32 } // 属性名必须使用双引号
[32, 64, 128, 0xFFF] // 不能使用十六进制值
{ "name": "张三", "age": undefined } // 不能使用undefined
{ "name": "张三",
"birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'),
"getName": function() {return this.name;} // 不能使用函数和日期对象
}
总结:
JavaScript中关于JSON对象和字符串转换的两个方法:
JSON.parse(): 用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify(): 用于将 JavaScript 值转换为 JSON 字符串。
Python中关于JSON对象和字符串的转换方法:
json.loads():用于将一个JSON字符串转换为字典
json.dumps():用于将一个字典转换为一个JSON字符串
来源:https://www.cnblogs.com/materfont/p/9566998.html