当前位置: 首页 > news >正文

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 结构,在接口测试中高效构建和解析数据,确保测试准确性。

相关文章:

  • 【再读】R1-Onevision通过跨模态形式化为复杂多模态推理任务提供了系统性解决方案
  • 盘库吧--搜索
  • 开源模型中的 Function Call 方案深度剖析
  • 【Linux系统】进程地址空间详解
  • 代码随想录算法训练营第五十九天| 图论05
  • 【MySQL】MySQL如何存储数据?
  • 计算机网络-1-1计算机网络体系结构
  • 清晰易懂的Java8安装教程
  • Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】
  • 可视化图解算法:判断链表中是否有环(环形链表)
  • JVM 垃圾回收器分类及其特点详解
  • TypeScript语言的计算机视觉
  • 前端性能优化回答思路
  • 【自学笔记】Redis基础知识点总览-持续更新
  • 移除元素(快慢指针)
  • 测试工作内容
  • 产品更新丨谷云科技ETLCloud 3月更新速递
  • 破解大数据密码:蓝耘Maas平台与阿里QWQ的智能分析革命
  • [MAVEN][经验总结]MAVEN_HOME和M2_HOME的配置建议
  • Linux-数据结构-线性表-单链表
  • 首次带人形机器人走科技节红毯,傅利叶顾捷:没太多包袱,很多事都能从零开始
  • 中央提级巡视后,昆明厅官郭子贞接受审查调查
  • 长期吃太饱,身体会发生什么变化?
  • 新片|《碟中谍8:最终清算》定档5月30日
  • 美F-35险被胡塞武装击中,损失增大让行动成“烂尾仗”
  • 南方降水频繁暴雨连连,北方高温再起或现40°C酷热天气