数据格式——JSON、XML、表单数据和URL编码、二进制数据

JSON

主流的数据交换格式,结构清晰、易于解析

定义

Json(JavaScript Object Notation)是一种轻量级的数据格式,用来表示结构化的数据格式。虽然名字里有JavaScript,但是几乎被所有变成语言知识

基本的语言结构

{
"username":"admin";
"password":"admin123";
"rememberMe":true;
"roles":["admin","user"]
}
  • key必须用双引号括起来

  • 支持的值类型

    • 字符串(string)

    • 数字(number)

    • 布尔值(tuue/false)

    • 数组(array)

    • 对象(object)

    • null

使用场景

  • 前后端接口交互(如登录、注册、查询数据)

  • 移动APP和Web API接口通信

  • 配置文件(如package.json、manifest.json)

特点

  • 结构清晰:层级明确,方便阅读和编写

  • 跨语言支持好:Java、Python等都内置解析器

  • 体积小:比XML更节省带宽、传输快

XML

较少使用,但部分老系统仍在用

定义

XML(eXtensible Markup Language),是可扩展标记语言,类似HTML,但更复杂,主要用于一些传统行业系统中。

基本语法结构

<user>
  <name>李四</name>
  <age>30</age>
  <is_student>false</is_student>
  <hobbies>
    <item>读书</item>
    <item>音乐</item>
  </hobbies>
  <address>
    <city>上海</city>
    <zip>200000</zip>
  </address>
</user>
  • 所有标签必须成对出现(开始+结束)

  • 标签名可以自定义

  • 层级嵌套表示结构

使用场景

  • 金融、政府等行业的老系统接口

  • 某些支付接口(如微信支付早期版本)

  • SOAP协议中的标准数据格式

特点

  • 语法繁琐:标签多,写起来麻烦

  • 可读性差:不如JSON简洁直观

  • 正在逐渐被淘汰,但在维护老项目是仍需了解

表单数据和URL编码

表单数据(Form Data)和 URL 编码(x-www-form-urlencoded)这两种格式都是浏览器提交网页表单时默认使用的

x-www-form-urlencoded(URL 编码)

定义

这是一种将表单数据编码为key=value形式的格式,适用于普通文本数据的提交

基本语法结构

原始数据

用户名:admin
密码:123456
记住我:true

编码后

username=admin&password=123456&rememberMe=true

特殊字符会被转义:

  • 空格——>%20

  • 中文——>%E4%B8%AD%E6%96%87

  • @——>%40

使用场景

  • 登录、注册、搜索等普通表单提交

  • 不适合上传文件

multipart/form-data(表单数据)

定义

这是浏览器上传文件时的标准格式,它把每个字段都作为一个独立的部分发送,支持二进制内容(比如图片、视频)

实例

(postman发送时自动处理)

KeyValueType
usernameadminText
avatarimage.jpgFile

使用场景

  • 图片、文件上传

  • 表单中包含文件字段时

二进制数据

上传文件等

定义

当你需要上传一张图片、一个PDF或者一段音频/视频时,这些内容本质上是一串”字节“,也就是二进制数据

特点

  • 不能直接阅读或者复制粘贴

  • 必须配合 multipart/form-data 使用

  • 后端通常接收为 File 类型参数(例如 Java 的 MultipartFile,Python 的 request.files

实例

你用微信发了一张照片给朋友:

  1. 微信 App 把这张照片读取成二进制数据;

  2. 构造成 multipart/form-data 请求;

  3. 发送到服务器;

  4. 服务器接收到的是一个完整的文件对象;

  5. 你的朋友就能看到这张图了。

总结对比

数据格式是否能传文件可读性适用场景典型应用举例
JSON✅ 高(结构清晰)接口通信、配置文件登录返回数据、API 接口
XML❌ 低(冗余多)老系统、SOAP 接口政府系统、银行支付接口
x-www-form-urlencoded✅ 中等普通表单提交登录、搜索
multipart/form-data❌ 低(需工具查看)文件上传、带附件的表单头像上传、文档上传
二进制数据❌ 不可读图片、视频、PDF视频上传、图片上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值