zoukankan      html  css  js  c++  java
  • JSON格式

    内容:

    1.什么是JSON

    2.JSON语法

    3.JSON如何使用

    参考:https://baike.baidu.com/item/JSON/2462549?fr=aladdin

    1.什么是JSON

    百度百科解释:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

    总的来说JSON是一种数据交换格式,类似XML,最开始是从JavaScript中弄出这个东西来的

    JSON特点及优点:

    • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
    • JSON 是轻量级的文本数据交换格式
    • JSON 独立于语言 *
    • JSON 具有自我描述性,更易理解

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

    2.JSON语法

    在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
    • 对象表示为键值对
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组
    1 // JSON对象
    2 {
    3     "name": "wyb666",
    4     "age": 21
    5 }
    6 
    7 // JSON数组
    8 nums = [21, 22, 23, 24, 25, "666"]

    JSON 键/值对:JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:

    1 {
    2     "name": "wyb"
    3 }

    合格的json对象:

    ["one", "two", "three"]
    { "one": 1, "two": 2, "three": 3 }
    {"names": ["张三", "李四"] }
    [ { "name": "张三"}, {"name": "李四"} ] 

     

    不合格的json对象:

    { name: "张三", 'age': 32 }  // 属性名必须使用双引号
    [32, 64, 128, 0xFFF] // 不能使用十六进制值
    { "name": "张三", "age": undefined }  // 不能使用undefined
    { "name": "张三",
      "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'),
      "getName":  function() {return this.name;}  // 不能使用函数和日期对象
    }

    3.JSON如何使用

    JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言(Java、python、PHP等)所支持的数据格式。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化为字符串

    JSON使用实例:

    有一个常见的需求是在 字典/数组 和 字符串 之间相互转换,这个过程叫做 序列化/反序列化
    在 js 中, 序列化使用 JSON 数据格式,全称 JavaScript Object Notation (js 对象标记),这个格式已经是现在用于互联网数据交换的事实标准格式了
    JavaScript中的序列化/反序列化操作:

    1 var s = JSON.stringify([1, 2, 3, 4])                // 将数组转化成字符串
    2 console.log('序列化后的字符串: ', typeof s, s)
    3 var a = JSON.parse(s)
    4 console.log('反序列化后的数组: ', typeof a, a)         // 将字符串转化成数组或对象

    python中的序列化/反序列化操作:

     1 # json.dumps方法可以将字典等数据格式化成一个字符串,这样可以方便别的编程语言进行调用
     2 # json.dump方法把字典等数据类型序列化进入一个文件中,等待别的程序进行调用
     3 # json.loads进行反序列化
     4 # json.load方法读取文件中的内容
     5 
     6 import json
     7 s = {"k1": "v1", "k2": "v2"}
     8 k = json.dumps(s)       # 序列化: 将字典、数组等类型转换成字符串
     9 print(k, type(k))
    10 res = json.loads(k)     # 反序列化: 将字符串转换成其他类型(字典、数组等)
    11 print(res, type(res))
    12 
    13 # 打开一个文件向其中写入字典、列表等数据类型
    14 with open("test.json", "w") as f:
    15     json.dump(s, f)
    16 
    17 # 读取文件内容
    18 with open("test.json", "r") as f:
    19     r = json.load(f)
    20     print(r)
    21     print(type(r))
  • 相关阅读:
    python爬虫之urllib库(三)
    python爬虫之urllib库(二)
    认识CSS中css引入方式、选择器、文本样式设置以及显示模式
    认识CSS中盒子模型
    python爬虫之urllib库(一)
    认识CSS中css背景样式设置
    python爬虫之认识爬虫和爬虫原理
    认识CSS中css的三大特性:层叠性、继承性以及优先级
    认识HTML中表格、列表标签以及表单控件
    python-基础学习篇(八)
  • 原文地址:https://www.cnblogs.com/wyb666/p/9459267.html
Copyright © 2011-2022 走看看