JSON 数据详解



一、JSON 是什么?

JSON(JavaScript Object Notation) 是一种 轻量级的数据交换格式,采用键值对(Key-Value)结构描述数据。它与编程语言无关,常用于前后端数据传输、API接口设计以及配置文件存储。

  • 设计初衷:替代 XML,简化数据交换流程。
  • 核心特点
    • 格式简洁,易读易写。
    • 兼容多语言(Java、Python、C#等)。
    • 占用网络带宽小(相比 XML),传输效率高。

二、JSON 的组成结构

JSON 数据由以下两种基础结构组成:

  1. 对象(Object)

    • {} 包裹,表示无序的键值对集合。
    • 键(Key):字符串(必须用双引号包裹)。
    • 值(Value):可以是字符串、数字、布尔值、数组、对象或 null
    • 示例:
      {
        "name": "张三",
        "age": 25,
        "isStudent": false,
        "address": {
          "city": "北京",
          "country": "中国"
        }
      }
      
  2. 数组(Array)

    • [] 包裹,表示有序的值集合(元素之间用逗号分隔)。
    • 示例:
      [
        {"id": 1, "product": "手机"},
        {"id": 2, "product": "电脑"}
      ]
      

三、JSON 语法规则
  1. 必须遵循

    • 键名必须用 双引号 包裹(单引号非法)。
    • 值可以是 stringnumberbooleanarrayobjectnull
    • 最后一个元素后不能有逗号(否则语法错误)。
  2. 典型错误示例

    {
      "name": "李四",  // ✅ 正确
      'age': 30,       // ❌ 错误:键必须用双引号
      "hobbies": ["篮球", "音乐", ],  // ❌ 错误:末尾逗号
    }
    
  3. 注释

    • JSON 标准不支持注释,但某些工具(如 JSONC)允许用 ///* */ 注释。

四、JSON 与 XML 的对比
对比项JSONXML
体积大小更小,无冗余标签较大(标签重复)
可读性高(结构类似代码对象)较低(标签嵌套复杂化)
解析速度更快(数据结构简单)较慢(需解析复杂标签树)
适用场景API 接口、移动端应用配置文件、老旧系统交互

五、JSON 的实际应用场景
  1. 前后端数据交互

    • 前端发送请求参数:
      {
        "username": "user123",
        "password": "******"
      }
      
    • 后端响应返回结果:
      {
        "code": 200,
        "data": {"userId": 123, "token": "abcxyz"}
      }
      
  2. 接口测试中的常见用法

    • JMeter 的 HTTP Sampler 中,使用 JSON 作为请求体:
      {
        "method": "POST",
        "url": "/api/login",
        "headers": {"Content-Type": "application/json"},
        "body": {
          "user": "test",
          "pwd": "123456"
        }
      }
      
    • Postman 中直接编写 JSON 请求体测试接口:
      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  3. 配置文件

    • 项目中的数据库配置(如 config.json):
      {
        "database": {
          "host": "localhost",
          "port": 3306,
          "user": "root",
          "password": "root"
        }
      }
      

六、如何操作 JSON 数据?
  1. 编写 JSON

    • 直接在文本编辑器或 IDE(如 VSCode、IntelliJ)中编写。
    • 必备工具:JSON 在线校验工具(如 JSONLint)。
  2. 解析 JSON

    • JavaScriptJSON.parse()JSON.stringify()
    • Pythonjson.loads()(字符串转对象)和 json.dumps()(对象转字符串)。
    • Java:使用 Jackson、Gson 等库。
  3. 测试工具中的 JSON 处理

    • JMeter

      • 通过 JSON Extractor 提取响应中的字段:
        "response": {
          "data": {"userId": 123}
        }
        
        JSON Path 表达式: $.data.userId → 提取值 123
      • 使用 JSON 断言 验证响应中的值:检查 code: 200
    • Postman

      • Tests 标签页用 JavaScript 解析 JSON 响应:
        let response = pm.response.json();
        pm.test("Check user ID", () => pm.expect(response.data.userId).to.eql(123));
        

七、JSON 的注意事项
  1. 严格语法校验

    • 键必须用双引号,大小写敏感{"Name": "Tom"}{"name": "Tom"} 不同)。
    • 数字无需引号,但字符串必须加引号:"age": 25(正确) vs "age": "25"(字符串类型)。
  2. 常见错误场景

    • JSON 解析失败:因语法错误(如逗号或引号缺失)导致接口返回 500 错误。
    • 数据类型混淆:前端期望数值类型 100,但接口返回字符串 "100"

总结

  1. 什么是 JSON?
    • 轻量级、易读的键值对数据格式,用于跨平台数据交换。
  2. 核心规则
    • 对象用 {},数组用 [],键名必须双引号,严格语法校验。
  3. 测试中的应用
    • API 请求/响应体、数据断言提取、配置文件存储。

最终目标:熟练掌握 JSON 结构,在接口测试中高效构建和解析数据,确保测试准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值