• 数据交换格式(XML与JSON)、JSON与JavaScript对象之间互转


    一、什么是数据交换格式

    数据交换格式是指服务器客户端之间进行数据传输与交换的格式

    在前端,经常提到的数据交换格式是JSON和XML。XML用的非常少,JSON是主流的数据交换格式

    二、XML数据交换格式

    XML全称:EXtensible Markup Language,中文叫可扩展标记语言

    1、XML特点

    XML与HTML类似,也是一种标记语言。

    <note>
    	<to>lsto>  // 发给谁
    	<from>zsfrom>  // 谁发的
    	<heading>通知heading>  // 标签
    	<body>晚上开会body>  // 内容
    note>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、XML与HTML的区别

    虽然都是标记语言,但是两者没有任何关系
    HTML是用来描述网页的内容,是网页的载体
    XML是用来传输和存储数据,是数据的载体

    3、XML缺点

    ① 格式臃肿,和数据无关的代码多,体积大,传输效率低
    ② 在JS中解析XML比较麻烦

    三、JSON数据交换格式

    JSON全称JavaScript Object Notation,即“JavaScript对象表示法”,
    简单来说:JSON就是用字符串来表示javascript对象数据或数组数据,它使用文本表示一个JS对象或数据信息。

    1、理解

    JSON是一种轻量级的数据交互格式,专门用来传输和存储数据
    JSON本质是字符串

    2、JSON的两种结构

    JSON包含对象和数组两种结构,通过这两种结构互相嵌套,可以表示各种复杂的数据结构。

    ① 对象结构

    {}括起来的内容,数据表示为{key:value,key:value,…}的键值对结构。

    key必须是使用英文的双引号包裹的字符串,value的数据类型可以是数字、字符串、布尔值、null、数组、对象6中类型

    JSON中所有的字符串都必须用双引号来包裹

    {
        "name":"憨瓜",
        "age":3,
        "sex":'公猫已绝育',
        "adress":null,
        "hobby":["气人","咬人","挠人"]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ③ 数组结构

    []括起来的内容。数据表示为[“咬人”,“挠人”,3,false…]的数组结构。

    数据的类型可以是:数字、字符串、布尔值、null、数组、对象6种类型。

    ["气人","咬人","挠人"],
    [100,200,300],
    [true,false,null],
    [{"name":"憨瓜","age":3,"sex":'公猫已绝育'},{"name":"波妞","age":3,"sex":'母猫已绝育'}],
    [["憨瓜","波妞","快来"],["德文","德武","小白"]]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、注意项

    属性名必须使用双引号包裹
    字符串类型的值必须用双引号来包裹,JSON不能使用单引号来表示字符串
    JSON中不能写注释
    JSON最外层必须是对象或数组格式
    JSON的值不能是undefined或函数

    4、优点

    在作用上与XML类似,但是 JSON比XML更小,更快,更易解析。

    简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。

    四、JSON与JavaScript对象的关系

    1、两者关系

    JSON是JavaScript对象的字符串表示法,它使用文本表示一个JS对象的信息。
    JSON遵循JavaScript的属性命名规范

    // 这是一个对象
    var obj = {name: '憨瓜', sex: '公猫已绝育'}
    
    // 这是一个JSON字符串,本质是一个字符串
    var json = '{"name": "憨瓜", "sex": "公猫已绝育"}'
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、JSON字符串转化为JS对象

    使用JSON.parse()方法

    var obj = JSON.parse('{"name": "憨瓜", "sex": "公猫已绝育"}')
    
    // 结果是:{name: '憨瓜', sex: '公猫已绝育'}
    
    • 1
    • 2
    • 3

    3、JS对象转换为JSON字符串

    使用JSON.stringify()方法

    var json = JSON.stringify({name: '憨瓜', sex: '公猫已绝育'})
    
    //  结果:'{"name": "憨瓜", "sex": "公猫已绝育"}'
    
    • 1
    • 2
    • 3

    五、序列化与反序列化

    1、序列化

    数据对象转换为字符串的过程,叫做序列化

    调用JSON.stringify()函数的操作,叫做JSON序列化。JSON.stringify()函数是序列化函数

    2、反序列化

    字符串转换为数据对象的过程,叫做反序列化

    调用JSON.parse()函数的操作,叫做JSON反序列化。SON.parse()函数是反序列化函数

  • 相关阅读:
    SSM框架Demo: 简朴博客系统
    PWC光流估计网络
    在 Python 3 中删除字符串文字前面的“b“字符
    XSS详解
    汽车行业数字化转型:时代巨变下的新机遇
    前端第三天__WebPack是什么?WebPack打包JS文件和CSS文件
    交易猫链接源码搭建/带教程
    [HNCTF 2022 WEEK2]e@sy_flower
    小程序如何反编译
    打造个性化代购商城,源码解决方案助您独占海外购物市场
  • 原文地址:https://blog.csdn.net/Vest_er/article/details/127411879