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

JSON 与 AJAX

一、JSON(JavaScript Object Notation)
1. 数据类型与语法细节
  • 支持的数据类型

    • 基本类型:字符串(需用双引号)、数字、布尔值(true/false)、null
    • 复杂类型:数组([])、对象({})。
  • 严格语法规范

    • 键名必须用双引号包裹(如 "name": "张三")。
    • 数组元素用逗号分隔,最后一个元素后不能有多余逗号。
    • 数字不能以0开头(如012会被解析为12),不支持八进制 / 十六进制表示。
  • 特殊场景示例

    json

    {"timestamp": 1686528000,"isAdmin": null,"emptyArray": [],"nestedObject": {"nestedArray": [1, 2, {"key": "value"}]},"escapedString": "Hello \"World\" \\n Newline" // 转义字符:\", \/, \b, \f, \n, \r, \t
    }
    
2. JSON 与 JavaScript 对象的区别
特性JSONJavaScript 对象
语法限制键名必须用双引号键名可省略引号(非字符串键)
数据类型无函数、Symbol、Date 等支持全部 JS 数据类型
序列化JSON.stringify()需手动处理复杂类型
原型链不保留原型链包含原型链属性
3. JSON 解析与序列化进阶
  • 循环引用处理

    javascript

    const obj = { name: '循环对象' };
    obj.self = obj;
    // JSON.stringify(obj) 会报错
    // 解决方案:使用replacer函数过滤循环引用
    JSON.stringify(obj, (key, value) => {if (value === obj) return '[Circular Reference]';return value;
    });
    
  • 大 JSON 数据处理

    • 分段解析:使用JSON.parse()reviver参数逐步处理。
    • 流式解析:Node.js 中可用JSONStream库处理 GB 级 JSON 文件。
  • JSON Schema 验证
    使用ajv等库验证 JSON 数据格式,例如:

    javascript

    const Ajv = require('ajv');
    const ajv = new Ajv();const schema = {type: 'object',properties: {name: { type: 'string' },age: { type: 'number', minimum: 18 }},required: ['name', 'age']
    };const valid = ajv.validate(schema, { na
http://www.xdnf.cn/news/13770.html

相关文章:

  • 开疆智能ModbusTCP转Devicenet网关连接ABB机器人配置案例
  • 网页中调用自定义字体可以通过 ‌CSS‌ 的 @font-face 规则实现
  • Vue 跳转页面,第一次进页面,会出现样式混乱,刷新后即恢复正常(问题已解决)
  • 进程和计划任务管理
  • 剑指offer23_树的子结构
  • ESP32S3 关于使用INMP441麦克风 和MAX98357AETE功放进行录音和播放
  • 复现论文报错解决
  • 新手速学:在线投票制作系统操作详细步骤
  • centos clamav 扫描及告警配置
  • 内网渗透测试技巧与利用操作手册(SMB / MSSQL / LDAP)
  • 全志A33安卓6.0添加支持usb摄像头动态热插拔
  • 换颜色 算法笔记
  • 新能源知识库(46)EMS与协控装置
  • 【深度学习-Day 27】模型调优利器:掌握早停、数据增强与批量归一化
  • 使用 C/C++的OpenCV 将多张图片合成为视频
  • 从零开始学Python(3)——函数
  • 第十三节:第七部分:Stream流的中间方法、Stream流的终结方法
  • 4、程序的固化和下载(一)
  • 《TCP/IP协议卷1》第11章 UDP:用户数据报协议
  • Error:Cannot find module ‘body-parser‘ | Require stack
  • 基于LQR控制算法的Simulink仿真
  • Harbor 2.12.2 and 2.12.3 初始化密码错误
  • 深度学习的分布式训练与集合通信(三)
  • 解决IntelliJ IDEA配置文件application.properties乱码的问题
  • 模型后处理可能包含的内容
  • Docker Docker Compose 一键安装
  • Ubuntu apt-get安装-报错:尝试“apt --fix-broken install”有未能满足的依赖关系,几种解决办法
  • 406. Queue Reconstruction by Height
  • 安装 Poppler(Windows)
  • Actix-web 中的权限中间件实现