活动地址:CSDN21天学习挑战赛
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
一、JSON的优势:
1、 JSON更快:
JSON语法非常易于使用。我们可以仅使用语法来为我们提供简单的数据解析和更快的数据执行。由于它的语法非常小而且重量轻,这就是它以更快的方式执行响应的原因。
2、兼容性广泛:
它具有广泛的支持浏览器与操作系统的兼容性,因此使用JSON编码生成的应用程序不需要太多努力就可以使所有浏览器兼容。在开发期间,开发人员考虑使用不同的浏览器,但JSON提供了该功能。
3、共享数据的最佳工具:
JSON是任何大小甚至音频,视频等共享数据的最佳工具。这是因为JSON将数据存储在数组中,因此数据传输更容易。因此,JSON是Web API和Web开发的优秀文件格式。
4、在服务器上解析
在服务器端解析是开发人员想要的重要部分,如果解析在服务器端快速,那么只有用户可以得到他们的响应的快速响应,所以在这种情况下JSON服务器端解析是强点表示我们在服务器端使用JSON。
二、JSON的缺点:
1、没有错误处理
在JSON中没有JSON调用的错误处理。如果动态脚本插入有效,您将被调用并完美地获得响应。
如果没有插入,就什么也不会发生。它只是默默地失败了。例如,你无法从服务器捕获404错误,也不能取消或重新启动请求。然而,在等待合理的时间之后,你就已经超时。
2、安全性
JSON的另一个主要缺点是,如果与不受信任的服务或不受信任的浏览器一起使用它会非常危险;因为JSON服务返回包含在函数调用中的JSON响应,如果它将与不受信任的浏览器一起使用,将由浏览器执行它可以被黑客入侵,这使托管Web应用程序易受各种攻击。如果您打算使用JSON服务,那么了解JSON所具有的威胁并了解如何保护它是非常重要。
3、支持工具有限
JSON只有有限的支持工具,我们可以在JSON开发过程中使用它们。
主要有四个方法分别如下
方法 | 功能 |
---|---|
json.dumps(obj) |
将python数据类型转换为json格式的字符串。 |
json.dump(obj, fp) |
将python数据类型转换并保存到son格式的文件内。 |
json.loads(s) |
将json格式的字符串转换为python的类型。 |
json.load(fp) |
从json格式的文件中读取数据并转换为python的类型。 |
json.dumps(obj)
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps(data)
print(data)
print(type(data))
print(data2)
print(type(data2))
运行结果如下
[{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
进程已结束,退出代码0
json.dump(obj, fp)
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data)
print(type(data))
print(data2)
print(type(data2))
运行结果如下
[{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
{
"a": "Runoob",
"b": 7
}
进程已结束,退出代码0
json.loads(s)
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(jsonData)
print(type(jsonData))
print(text)
print(type(text))
运行结果如下
{"a":1,"b":2,"c":3,"d":4,"e":5}
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
进程已结束,退出代码0
json.load(fp)
import json
python_obj = json.load(open('data.json','r'))
print(python_obj)
print(type(python_obj))
根目录下的data.json文件内容如下
{
"age": 30,
"name": "张三",
"tle": "10086"
}
运行结果如下:
{'age': 30, 'name': '寮犱笁', 'tle': '10086'}
进程已结束,退出代码0