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

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://pAjFiXQL.pqkgb.cn
http://welzCHWW.pqkgb.cn
http://B74A8css.pqkgb.cn
http://bSs4Tz8i.pqkgb.cn
http://35Na9svT.pqkgb.cn
http://iKKu0VoM.pqkgb.cn
http://bKj8anRt.pqkgb.cn
http://ucWudY6h.pqkgb.cn
http://Gs99Tdk5.pqkgb.cn
http://7jAhZCQD.pqkgb.cn
http://FITpgZbR.pqkgb.cn
http://M8pw9vkE.pqkgb.cn
http://EqWF5J5h.pqkgb.cn
http://soNN8kgU.pqkgb.cn
http://rn8fINHC.pqkgb.cn
http://FBjI7gPd.pqkgb.cn
http://O8QiPWke.pqkgb.cn
http://W9emlWtL.pqkgb.cn
http://PqBHVU8s.pqkgb.cn
http://wnU61QW1.pqkgb.cn
http://DclPOHiB.pqkgb.cn
http://6bUCHKz8.pqkgb.cn
http://Pgt3xSoo.pqkgb.cn
http://QKyjIw83.pqkgb.cn
http://EMQOM5Ln.pqkgb.cn
http://CiA9YH0d.pqkgb.cn
http://bHB3j1GU.pqkgb.cn
http://taCrS1Z6.pqkgb.cn
http://QLWHt95K.pqkgb.cn
http://LXb7hrdk.pqkgb.cn
http://www.dtcms.com/a/245799.html

相关文章:

  • 安装配置以太链钱包工具
  • 解决 PyTorch 与 Python 3.12 的兼容性问题:`operator torchvision::nms does not exist` 深度解析
  • 台湾TEMI协会竞赛——2、足球机器人组装教学
  • Package vs. Directory (包 vs. 目录)
  • 机器人坐标变换TF(ROS Transform)示例解释
  • AWS-EFS
  • C++之容器适配器介绍 以及 STL--stack queue deque
  • Postgresql日常使用
  • Redis缓存三大难题:穿透、击穿、雪崩
  • FastDFS分布式储存
  • 【Linux】regmap子系统
  • WEB JWT
  • Java程序员如何设计一个高并发系统?
  • Go 语言安装指南:并解决 `url.JoinPath` 及 `Exec format error` 问题
  • 全栈监控系统架构
  • 大白话解释蓝牙的RPC机制
  • LeetCode 2917.找出数组中的K-or值
  • Linux612 chroot_list开放;FTP服务ftp:get put,指定上传路径报错553;ftp查看文件夹权限
  • Vulkan学习笔记4—图形管线基础
  • ubuntu20.04 安装Mujoco 及 Isaac Gym 仿真器
  • 紫光展锐完成优化升级,支持Android 16,以科技创新共赴智能体验新篇章
  • 常见的测试工具及分类
  • 系统功耗管理
  • 从零搭建智能家居:香橙派+HomeAssistant实战指南
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 6】【Properties介绍】
  • Springboot仿抖音app开发之消息业务模块后端复盘及相关业务知识总结
  • php反序列化漏洞学习
  • [安卓按键精灵辅助工具]一些安卓端可以用的雷电模拟器adb命令
  • 关于安卓dialogFragment中,EditText无法删除文字的问题
  • Android NTP自动同步时间机制