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

《深入理解JavaScript》—— JSON

导读: JSON(JavaScript Object Notation)是纯文本格式的数据存储。它被广泛应用于Web服务的传输媒介、配置文件等。

(1)数据格式

{
    "first" : "luo",
    "last" : "haoran",
    "married" : false,
    "born" : 1995,
    "friends" : ["Yangbo","Liuli"]
}

(2) JSON.stringify(value,replacer?,space?)

JSON.stringify(value,replacer?,space?)将JavaScript值value转换成JSON字符串。它有两个可选参数。

① 节点访问函数,会在值被转换成字符串之前转换树节点值。例如:

function replacer( key , value ) {
    if (typeof value === 'number') {
        value = 2 * value;
    }
    return value;
}
var a = JSON.stringify({
    a : 5,
    b : 6,
    c : 10
},replacer);

console.log(a); // {"a":10,"b":12,"c":20}

② 属性键白名单,用于隐藏那些非数组对象内属性不在这个列表中的所有属性。

可以用于缩进:

(一)数字:

将数字乘以对应量级的缩进,并用对应多的空格来缩进。小于0解释成0;大于10解释成10。

var a = JSON.stringify({
    a : 5,
    b : 6,
    c : 10
},null,6);

console.log(a);
// {
//     "a": 5,
//     "b": 6,
//     "c": 10
// }

这里前面缩进了6个空格。

(二) 字符

var a = JSON.stringify({
    a : 5,
    b : 6,
    c : 10
},null,'|--');

console.log(a); 
// {
// |--"a": 5,
// |--"b": 6,
// |--"c": 10
// }

(3) JSON.parse(text,reviver?)

JSON.parse(text,reviver?)解析文本格式的JSON数据,然后返回相应的值。

(4) 通过节点访问函数转换数据

我:关于这里更加深层次的问题,我暂时是看不懂。跳过这一点。

转载于:https://www.cnblogs.com/luohaoran/p/5987858.html

相关文章:

  • VCS仿真 Dump Memory
  • 【读书笔记】《编程珠玑》第二章之算法设计的重要性
  • Web:AJAX的网络请求
  • Lambda表达式详解(转载)
  • JMeter 配置元件之计数器Counter
  • signalr-源码
  • iOS开发之内购-AppStore
  • matplotlib —— 添加文本信息(text)
  • linux下压缩包的解压
  • [Java][Liferay] File system in liferay
  • 用for、while、do-while循环输出10句“好好学习,天天向上!”
  • 常见标签的全称
  • 【EntityFramework Core】实体实例化注入
  • apiCloud中的API对象
  • 静态链接
  • 2017-08-04 前端日报
  • angular2 简述
  • Apache的80端口被占用以及访问时报错403
  • ES10 特性的完整指南
  • JAVA_NIO系列——Channel和Buffer详解
  • Object.assign方法不能实现深复制
  • Python - 闭包Closure
  • Redis 中的布隆过滤器
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vuex 笔记整理
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 七牛云假注销小指南
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • $GOPATH/go.mod exists but should not goland
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)kafka实战——kafka源码编译启动
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net Memory Profiler的使用举例
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • @取消转义
  • []FET-430SIM508 研究日志 11.3.31
  • [20160807][系统设计的三次迭代]
  • [Android]Android开发入门之HelloWorld
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [APUE]进程关系(下)
  • [AR Foundation] 人脸检测的流程