JSON教程(纯粹笔记)

JSON教程

https://www.runoob.com/json/json-syntax.html

https://www.json.org/json-zh.html

JSON:JavaScript Object Notation(JavaScript对象表示法)

JSON是存储和交换文本信息的语法,类型XML。

JSON比XML更小,更快,更易解析。

json实例

{
    "sites": [
    { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"微博" , "url":"www.weibo.com" }
    ]
}

这个site对象包含3个站点记录(对象)的数组。

一、什么是json

  • JSON指的是JavaScript对象表示法
  • JSON是轻量级的文本数据交换格式
  • JSON独立于语言:虽然JSON使用javascript语法来描述数据对象,但JSON仍然独立于语言和平台。JSON解释器和JSON库支持许多不同的编程语言。目前非常多的编程语言都支持JSON。比如Python,PHP等

二、JSON简介

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

为什么使用 JSON?

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

使用 XML

  • 读取 XML 文档
  • 使用 XML DOM 来循环遍历文档
  • 读取值并存储在变量中

使用 JSON

  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串

三、JSON语法

JSON语法规则

  • 数据在 键/值 对中
  • 数据由逗号分隔
  • 大括号{}表示对象
  • 中括号[]表示数组,数组可以包含多个对象

JSON键值对

书写格式

key: value

例如:看到没,字符串要用双引号包起来

"name": "tom"

JSON值可以是

  • 数字(包含整数、浮点数)
  • 字符串(要用双引号包起来)
  • 逻辑值(true或false)
  • 数组(中括号里面)
  • 对象(大括号里面)
  • null

JSON值为数字

{"age": 18}
{"height": 175.8}

JSON值为对象

json对象写在大括号里面

{
    "age": 18,
    "height": 175.8
}

JSON值为数组

json数组写在中括号里面

{
    "美国大选":[
        { 
            "name": "特朗普",
            "票数": 214
        },
        {
            "name": "拜登",
            "票数": 264
        }
    ]
}

JSON布尔值

可以是true或者false

{"flag": true}

JSON null

{"name": null}

JSON文件

  • JSON文件的文件类型.json
  • JSON文本的MIME类型application/json

四、JSON对象

对象语法

{
    "name": "mahuateng",
    "age": 18
}
  • JSON对象在大括号中书写
  • 对象可以包含多个 键值对
  • key必须是字符串,且必须使用双引号引起来;value可以是字符串,数字,对象,数组,布尔值,null
  • key和value必须使用冒号分隔
  • 每个key/value之间以逗号分隔

python访问对象的值

其实就是python里面的字典,只不过python里面字符串可以用双引号可以用单引号而已

student = {"name": "mahuateng", "age": 18}
student["name"]

#输出
'mahuateng'

python循环对象(遍历字典)

#遍历key
student = {"name": "mahuateng", "age": 18}
for item in student:
    print(item)
    
#遍历value
student = {"name": "mahuateng", "age": 18}
for item in student:
    print (student[item])
    
#或者
student = {"name": "mahuateng", "age": 18}
for k,v in student.items():
    print (k,v)

修改

student = {"name": "mahuateng", "age": 18}
student["age"] = 20

删除

student = {"name": "mahuateng", "age": 18}
student.pop("age")

五、JSON数组

{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}

python遍历列表

student = {
    "name":"网站",
    "num":3,
    "sites":[ "Google", "Runoob", "Taobao" ]
}
for item in student["sites"]:
    print(item)

删除

fruits = ["apple", "orange", "grape", "kiwi", "mongo", "pineapple", "durian"]
fruits.remove("grape")

六、JSON格式化校验

https://www.bejson.com/

七、python3 JSON数据解析

参考:https://www.runoob.com/python3/python3-json.html

参考:https://docs.python.org/zh-cn/3.8/library/json.html

  • json.dumps() 对数据进行编码
  • json.loads() 对数据进行解码

img

Python 编码为 JSON 类型转换对应表:

Python JSON
dict object
list, tuple array
str string
int, float, int- & float-derived Enums number
True true
False false
None null

JSON 解码为 Python 类型转换对应表:

JSON Python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

编码

import json
 
# Python 字典类型转换为 JSON 对象
data = {
    'no' : 1,
    'name' : 'Runoob',
    'url' : 'http://www.runoob.com'
}
 
json_str = json.dumps(data)
print ("Python 原始数据:", repr(data))
print ("JSON 对象:", json_str)

#输出
Python 原始数据: {'no': 1, 'name': 'Runoob', 'url': 'http://www.runoob.com'}
JSON 对象: {"no": 1, "name": "Runoob", "url": "http://www.runoob.com"}

解码

import json
 
# Python 字典类型转换为 JSON 对象
data1 = {
    'no' : 1,
    'name' : 'Runoob',
    'url' : 'http://www.runoob.com'
}
 
json_str = json.dumps(data1)
print ("Python 原始数据:", repr(data1))
print ("JSON 对象:", json_str)

#输出
Python 原始数据: {'no': 1, 'name': 'Runoob', 'url': 'http://www.runoob.com'}
JSON 对象: {"no": 1, "name": "Runoob", "url": "http://www.runoob.com"}

python命令行美化json

喜欢在线工具的话可以使用在线工具

[root@david SetMachineTag]$ echo '{"json": "obj"}' | python3 -m json.tool
{
    "json": "obj"
}

八、js前端加密

javascript代码加密,咱也不懂

在线加密工具:https://www.jsjiami.com/

posted @ 2020-11-13 14:25  uscwifi  阅读(207)  评论(0编辑  收藏  举报