JSON格式数据解析

1 简介

1.1 概述

  • JSON(JavaScript Object Notation,JavaScript对象表示法);
  • JSON是轻量级的文本数据交换格式;
  • JSON独立于语言:JSON使用JavaScript语法来描述数据对象,但是其独立于语言和平台;
  • JSON解析器和JSON库支持许多不同的编程语言;

1.2 特点

序号特性
1纯文本,自我描述,层级结构
2通过JavaScript解析,AJAX传输
3读写速度快,可使用JavaScript evaluation()进行解析
4可使用数组

1.3 语法及说明

  • 语法
{["key1":"value1","key2":"value2"]}
# 数字
{"key1":20}
# 对象
{"name":"xindaqi"}
# 数组,language[0].C
{"language":[{"C":"hardware"},{"python":"scientific calculation"}]}
# 布尔
{"flag":True}
# null
{"key1":null}
  • 说明
序号描述
1数据形式:键-值对,值可为数字、字符串、布尔、数组、对象、NULL
2数据由逗号隔开
3花括号保存对象{}
4方括号括号保存数组[]

1.4 JavaScript&Json

{"name":"xin daqi", "sex":"male"}
# javascript
name = "xin daqi"
sex = "male"

2 使用

2.1 json文件

  • json文件类型为*.json
  • json文本mime类型为application/json,返回数据设置:
# 返回json数据
res = requests.post(url, json=data)
res = res.json()
res = json.dumps(res)
res Resoponse(res, mimetpe="application/json")
return res 

2.2 对象

2.2.1 JSON对象

  • 说明
序号说明
1key:value,key必须为字符串,value为合法的Json数据类型即可
2key和value用冒号(:)分割,每对key和value用逗号(,)分隔
3使用点号(.)或中括号([])访问对象的值
var data, v1;
data = {"name":"xindaqi", "job":"IT"};
# 取值
v1 = data.name;
v2 = data["name"]
# 修改
data.name = "xin daqi"
data["name"] = "xin daqi"
# 删除
delete data.name
delete data["name"]

2.2.2 嵌套对象

var data, v1, v2;
data = {
"name":"xindaqi",
"info":{
			"sex":"male"
		}
};
v1 = data.info.sex;
v2 = data.info["sex"]

2.3 数组

2.3.1 Json数组

var data, v1;
data = {
"name":"xindaqi",
"info":["male", "postgraduate"]
}
v1 = data.info[0];

2.3.2 嵌套Json对象的数组

var data, v1, v2;
data = {
"name":"xin daqi",
"info_1":[{"sex":"male","info_2":["IT"]},
		 {"education":"postgraduate", "info_3":["python","ruby"]}
		 ]
}
v1 = data.info_1[1].info_3[1]

2.4 JSON转为JavaScript对象

  • JSON.parse()
  • 说明
    将数据转为JavaScript对象
JSON.parse(text[, reviver])
序号说明
text必填项,有效的Json字符串
reviver可选项,转换结果的函数,为对象的成员调用此函数
# json data to javascript
<p id="test"></p>
<script>
var data = '{"name":"xin daqi"}'
var jsData = JSON.parse(data)
document.getElementById("test").innerHTML = jsData.name
</script>
  • eval("(" + var + “)”)
<p id="test"></p>
<script>
var data ='{"name":"xin daqi", "sex":"male"}';
var jsData = eval("("+ data +")");
document.getElementById("test").innerHTML = jsData.name;
</script>

2.5 JSON.stringfy()

  • 说明
    将JavaScript对象转换为字符串;
JSON.stringfy(value[, replacer[, space]])
序号描述
1value必填,JSON合法对象
2replacer可选,用于转换的结果或数组,如果replacer为函数,JSON.stringfy()会调用该函数,并传入每个成员的键和值;如果replacer为数组,仅转换数组中具有键值的成员
3space可选,文本添加缩进、空格和换行,space为数字,返回值文本在么个级别缩进指定数目的空格,如果space>10,文本缩进10个空格,space可用非数字,如\t

2.5.1 JavaScript对象转换

<p id="test"></p>
<script>
var data = {"name":"xin daqi", "sex":"male"};
var stringData = JSON.stringify(data);
document.getElementById("test").innerHTML = stringData;
</script>

2.5.2 JavaScript数组转换

<p id="test"></p>
<script>
var data = ["xindaqi", "male"];
var stringData = JSON.stringify(data);
document.getElementById("test").innerHTML =stringData;
</script>

3 总结

  • Json喜闻乐见,原理及使用仍需掌握。
  • 应用于Python后端返回数据,需要注意返回格式。
  • python中json字符串操作函数json.dumps(),json.loads()参见博客:
    https://blog.csdn.net/Xin_101/article/details/83715804有助于理解后台开发。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值