• 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/

  • 相关阅读:
    解决淘淘第三天无法显示图片
    包名与工程名
    明明有这个类却提示出错
    出错,网页显示不出内容
    配置域名
    本地jar包添加到maven仓库
    POJ1704 Georgia and Bob 博弈论 尼姆博弈 阶梯博弈
    POJ 2960 S-Nim 博弈论 sg函数
    sg函数总结
    POJ 2425 A Chess Game 博弈论 sg函数
  • 原文地址:https://www.cnblogs.com/uscWIFI/p/13969169.html
Copyright © 2020-2023  润新知