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))
  • 相关阅读:
    SuperMap房产测绘成果管理平台
    SuperMap产权登记管理平台
    Android adb shell am 的用法(1)
    由浅入深谈Perl中的排序
    Android 内存监测和分析工具
    Android 网络通信
    adb server is out of date. killing...
    引导页使用ViewPager遇到OutofMemoryError的解决方案
    adb logcat 详解
    How to send mail by java mail in Android uiautomator testing?
  • 原文地址:https://www.cnblogs.com/wyb666/p/9459267.html
Copyright © 2011-2022 走看看