Json学习

什么是 JSON ?

  1 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

  2 JSON 是轻量级的文本数据交换格式

  3 JSON 独立于语言 *

  4 JSON 具有自我描述性,更易理解

  5 JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

相比 XML 的不同之处

  1 没有结束标签

  2 更短

  3 读写的速度更快

  4 能够使用内建的 JavaScript eval() 方法进行解析

  5 使用数组

  6 不使用保留字

为什么使用 JSON?

  对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用

JSON 值可以是:

  1 数字(整数或浮点数)

  2 字符串(在双引号中)

  3 逻辑值(true 或 false)

  4 数组(在方括号中)

  5 对象(在花括号中)

  5 null

JSON 对象

JSON 对象在花括号中书写:

对象可以包含多个名称/值对:

{ "firstName":"John" , "lastName":"Doe" }

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

在js中使用json

字符串

var str1 = '{ "name": "cxh", "sex": "man" }';

json对象

var str2 = { "name": "cxh", "sex": "man" };

将json字符串转化为json对象

var obj = eval('(' + str1 + ')');
var obj = JSON.parse(str1);

将jjson对象转化为son字符串

var str = JSON.stringify(str2);

json对象可以这样读取

 Alert(obj.name);

 

在python使用json

使用 JSON 需要导入 json 库:import json

json.dumps使用 将字典类型转化为json字符串

import json
t_dict = {
	"k1":"v1",
	"k2":"v2",
}
print(json.dumps(t_dict))  # 字符串格式 {"k1":"v1","k2":"v2"}
t_dict = {
	"k1":"v1",
	"k2":"好",
}
print(json.dumps(t_dict))  # 字符串格式 {"k1":"v1","k2":"\u597d"} 不过是unicode编码
t_dict = {
	"k1":"v1",
	"k2":"好",
}
print(json.dumps(t_dict, ensure_ascii=False))  # 字符串格式 {"k1":"v1","k2":"好"}

json.loads使用  将字符串转化为字典或元祖类型

import json

t_dict = '[{"k1":"v1"},{"k2":"v1"}]'
t_c_dict = json.loads(t_dict)
print(t_c_dict, type(json.loads(t_dict)))  # [{'k1': 'v1'}, {'k2': 'v2'}] <class 'list'>

t_dict = '[{"k1":"v1"},{"k2":"好"}]'
t_c_dict = json.loads(t_dict)
print(t_c_dict, type(json.loads(t_dict)))  # [{'k1': 'v1'}, {'k2': '好'}] <class 'list'>

json.dumps使用  用于处理文件类型

import json
t_dict = {"k1":"v1","k2":"v2"}
with open("data.txt", "w", encoding="utf-8") as f:
	json.dump(t_dict, f) 				# data.txt中 {"k1": "v1", "k2": "v2"}

json.loads使用 用于处理文件类型

import json
with open("data.txt", "r") as f:
	t_dict = json.load(f)
	# t_dict = json.loads(f.read())   # 与上面效果一样
	print(t_dict, type(t_dict))		# {'k1': 'v1', 'k2': 'v2'} <class 'dict'>

  

 

posted @ 2019-03-26 14:01  KIV  阅读(128)  评论(0编辑  收藏  举报