前后端通信的秘密武器:JSON格式如何简化数据传递

职场   2024-12-13 13:00   北京  

在编程中,前后端为了确保双方能够顺利传递信息,需要约定一种信息交换的方式。其中JSON作为一种轻量级、易读写的数据格式,就像在沙滩上画数字一样,成为了前后端信息交互的默契方式。通过约定好的JSON数据结构,请求和响应双方能够更加高效地交换信息,实现信息的无缝传递。

那么,JSON就是信息交换所使用的的一种数据格式

常见的数据交互的格式

常见的数据交互格式包括纯文本、XML、JSON等不同结构,让我们分别来看一下它们之间的区别。

1.  纯文本格式

    ● 竖线分割的(姓名|性别|地址|年龄|手机号)

  ● 逗号分割的(姓名,性别,地址,年龄,手机号)

2.  XML格式

3.  JSON格式

各种格式的对比

1.  文本格式

    a.  优点:内容简洁,传输数据量少

    b.  缺点1:无法适应复杂的业务变化,例如后端将电话与年龄调换位置,前端如果不调整数据就会错乱

    c.  缺点2:不支持有层级结构的,层级结构下面会展开讲解

    d.  缺点3:如果数据中包含竖线,解析时就会出现数据错乱,例如“张三|男|沙阳路18号北京科技职业学院内|23|13333335555”中的地址信息改为“张三|男|沙阳路18号北京科技职业学院内-服务楼2|3|4层|23|13333335555”,解析时就会多出来很多个字段

2.  xml格式

    a.  优点1:格式清晰,顺序可调整,后端新增项也不影响前端

    b.  优点2:支持层级结构

    c.  优点3:数据内容与标签相同时可进行转义

    d.  缺点1:数据传输量大,是文本的好几倍,属性描述字段需要有开始和结束标签,例如:“<name>张三</name>”

3.  json格式

    a.  优点1:格式清晰,顺序可调整,后端新增项不会影响影响前端

    b.  优点2:支持层级结构(后面展开说)

    c.  优点3:数据内容与标签相同时可进行转义

    d.  优点4:数据传输量适当,属性描述字段不需要有闭合标签,例如:“name:"张三"”

展开说说JSON?

JSON,即JavaScript Object Notation,直译是js对象标记。是一种轻量级的数据交换格式,它由键值对组成,用于表示结构化的数据

既然咱们展开说就说的直白一点,JSON的是由js当中的对象数据类型演化而来,用于描述某种对象的属性和值的,并且具有上级结构,为了方便传输,把这种数据改造为字符串,诶,这不就来了吗,js对象数据类型如下:

但,这是js的对象数据类型,数据类型本质是内存中存储数据的方式,我们不可能把内存传输给后台。

不能传输内存,那就转为字符串传递呗,按照对象数据类型的这个结构,变为字符串格式的,这多清晰明了,数据量也不是很大,又能很好兼顾层级结构(省市县const addr),说干就干,于是我们转为下面这个样子:

JSON的组成

    ● 大括号 {}:用于表示对象的开始和结束,对象是由一组无序的键值对组成的。
    ● 方括号 []:用于表示数组的开始和结束,数组是由一组有序的值组成的。  
    ● 冒号 ::用于分隔键和值,将键与对应的值关联在一起。
    ● 逗号 ,:用于分隔数组或对象中的不同键值对或值,将它们分开。
    ● 双引号 " 或单引号 ':用于包围字符串,表示字符串的开始和结束。
    ● 反斜杠 \:用于转义特殊字符,确保特殊字符的正确解析。

写到最后:JSON的优雅之处

    ● 数据体积JSON通常比XML更小巧。由于JSON采用了简洁的语法,不需要像XML那样添加大量的标签和属性,因此JSON的数据体积相对较小。这使得JSON在网络传输中消耗的带宽更少,有利于提高数据传输的效率。

    ● 语法复杂性:相比较而言,XML的语法相对复杂一些。XML需要使用起始标签和结束标签来包裹数据,而JSON只需要使用花括号 {} 和方括号 [] 就可以表示对象和数组。这使得JSON的语法更加简洁和易读。

    ● 解析效率:由于JSON的语法相对简单,它的解析速度通常比XML更快。这对于大规模数据的处理和解析非常重要,尤其在需要实时响应的应用场景下。

    ● 兼容性:JSON在前端和后端的兼容性较好。几乎所有主流编程语言都有JSON的解析和序列化库,这使得JSON在前后端交互时更为便捷。

    ● 可读性:JSON相对于XML更易读写。JSON的结构类似于JavaScript对象,使得开发者能够更直观地理解数据结构,便于调试和开发。

    ● 扩展性:尽管XML在一些特定领域具有更好的扩展性,但对于一般的树形数据结构,JSON的扩展性也是足够的。JSON支持嵌套对象和数组,可以灵活地表示复杂的数据结构。

综上所述,JSON在处理省市县和汽车等树形数据结构时具有更小的数据体积、更简洁的语法、更快的解析效率和更好的兼容性等优势。这些优势使得JSON成为处理树形数据结构的首选数据格式,尤其在现代Web应用和移动应用中广泛应用。然而,对于一些特定需求,XML仍然可能是更好的选择,比如需要更复杂结构和更强的扩展性的场景。

推荐一个受到超多好评的终生学习小程序「千锋学习站」

全网超火的课程资源:涵盖18个IT行业热门课程,3000G精品授课视频,从入门到精通,理论+实战,小白适用!
全网超牛的公开课:定期邀请一线大厂大佬来直播间宣讲,全程干货,福利满满,从基础理论到实战案例,分享实战IT技能,拒绝纸上谈兵!
全网超全的题库资源:1800个知识点练习,10万道面试真题,沉浸式刷题练习,帮助各位同学夯实基础,提升技术水平,为升职加薪保驾护航!
— 不负每份期待,继续与你共同成长—
点击下方小卡片,开始学习吧
👇👇👇

End -

想要获得技能提升和职业发展
点击即可学习免费好课哦!
 
 
免费好课推荐:
 Linux云计算 | Java开发 | 鸿蒙 | Python数据分析 | 物联网 | 网络安全 | 游戏原画 | 软件测试 | Unity游戏 | PMP项目管理 | HTML5大前端 | 全媒体运营 | UI/UE设计 | 影视剪辑 | C++ | 大数据 | 计算机二级


大前端私房菜
每天推出前端开发技巧、工具资源、项目实战等主题内容。在这里,你可以找到前端性能优化的私房秘籍,JavaScript 个性化框架的私房推荐,也有过时技术的私房警示。期待在公众号与更多小伙伴相遇!我们一起进步,共同成长
 最新文章