hduhelp / backend_2020_daily

1 stars 0 forks source link

json: 什么是json, 在前后端分离的模式中json的作用是什么? #2

Open XMLHexagram opened 3 years ago

XMLHexagram commented 3 years ago

为什么选择了json,而不是XML之类的格式?

william2ai commented 3 years ago

大晚上先来答一下json是啥 大概可能是一种储存信息 交换信息的东西吧,,吃炸鸡去了

wuhan005 commented 3 years ago

除了 JSON 之外,Go 的标准库还支持哪些格式的序列化/反序列化? 它们可以在哪个包里找到?

Caveinr commented 3 years ago

JavaScript Object Notation , 标准通用标记语言(的子集) .

在前后端分离的模式中 , 生成网页的程序 , 和操作数据库的程序必然是分开的 . 显然 , 不同的程序间无法直接读取其它程序的数据( 尤其是不同语言间对变量类型的 定义实现 很有可能不一样 ) . 这个时候一个格式化的东西是非常有必要的 . (类似于 当前 的通用语言英语)

这样所有程序都能读的语言有很多 , 从最初的SGML , XML , SVG , HTML , 到后来的CSON , YAML , INI , 以及今天一日一摸鱼的主角JSON .

显然 , 排除写出来充字数的语言 , 剩下的XML和JSON , 是当前网络服务中数据交换还在用的语言 .

项目 比较
数字格式 XML没有而JSON有(方便parse)
结构 JSON结构更简单 , XML支持更复杂的结构
调用 JS调用JSON一句eval_r() , XML还没见过哪个语言支持直接调用(虽然这个对比比较欺负人)
冗余信息 JSON明显少很多 , 而多数情况下不需要太多的冗余 助手本来加载就慢了
手写难度 JSON比XML好写几倍 , 我试过了

总体来说

一切都是因为第一个后端人写的时候用了JSON

ghost commented 3 years ago

json是一种数据交互格式,与XML这种纯文本格式不同的是,它比较轻量级。使用ajax可以用于前后端数据交换。json可以通过数组和对象的方式来定义对象的属性。

jess-weigou commented 3 years ago

json用来处理post请求,因为post请求是键值对的形式,JSON的结构更容易映射至一般语言的数据结构,跟xml比也比较易读。