json是一种数据格式,不是一种编程语言。
json是一种轻量级的数据格式,可以简化表示复杂数据结构的工作量。

1、语法
①json字符串必须使用双引号
②没有声明变量
③没有末尾分号
④json对象中的属性名必须加双引号

json的语法可以表示三种类型的值
简单值:使用与js相同的语法,可以在json中表示字符串、数值、布尔值和null。(不支持undefined)

"hello world"
复制代码

对象:

{"name":"Ewall","age":21
}
复制代码

数组:

[25,"ewall",true]
复制代码

2、JSON对象
两个方法:stringfy( ):把js对象序列化为json字符串
parse( ):把json字符串解析为原生js值

var person={name:"Ewall",friends:["joe","frank"],edition:3,year:2017
};
var jsonText=JSON.stringify(person);
console.log(jsonText);
复制代码

3、JSON.stringfy( )的具体用法
该方法可以传入三个参数,第一个参数是要序列化的对象;第二个是个过滤器(可以是数组或者是函数);第三个是一个选项,表示是否在JSON字符串中保留缩进。
①当过滤器是数组,那么该方法返回的结果将只包含数组中列出的属性

var person={name:"Ewall",friends:["joe","frank"],edition:3,year:2017
};
var jsonText=JSON.stringify(person,["name","year"]);console.log(jsonText); //{"name":"Ewall","year":2017}
复制代码

②当过滤器是函数。传入的函数接收两个参数,属性名和属性值,根据属性名可以知道应该如何处理要序列化的对象中的属性。

var person={name:"Ewall",friends:["joe","frank"],edition:3,year:2017
};
var jsonText=JSON.stringify(person,function(key,value){switch(key){case "friends":return value.join(",");case "year":return undefined;  //通过返回undefined删除该属性default:return value;}
});
console.log(jsonText); //{"name":"Ewall","friends":"joe,frank","edition":3}
复制代码

4、JSON.parse( )方法的具体用法
接收两参数:第一个参数是要序列化的对象;第二个参数是个还原函数。
在将日期字符串转换为Date对象是,经常要用到还原函数。

var person={name:"Ewall",friends:["joe","frank"],edition:3,year:2017,releaseDate:new Date()
};
var jsonText=JSON.stringify(person);
console.log(jsonText);var bookCopy=JSON.parse(jsonText,function(key,value){if(key=="releaseDate"){return new Date(value);  //基于相应的json值创建一个新的Date对象}else{return value;}
});
console.log(bookCopy.releaseDate);
复制代码

觉得不错请点赞支持,欢迎留言或进我的个人群855801563领取【架构资料专题目合集90期】、【BATJTMD大厂JAVA面试真题1000+】,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨。

转载于:https://juejin.im/post/5cbd7bc76fb9a032165e1f07

轻量级数据交换格式JSON相关推荐

  1. 数据交换格式Json与XML

    什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...

  2. XML和JSON两种数据交换格式的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  3. 【Java】JSON数据交换格式及其使用案例(聊天工具)

    数据交换格式主要分为纯文本格式,XML格式和JSON格式.其中纯文本格式是一种简单的,无格式的数据交换方式:而XML格式和JSON格式可以带有描述信息,它们叫做"自描述的"结构化文 ...

  4. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  5. 数据交换格式与SpringIOC底层实现

    课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...

  6. XML和JSON 数据交换格式

    为什么80%的码农都做不了架构师?>>>    一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...

  7. 于数据交换格式XML和JSON的比较

    目前,在web开发领域,主要的数据传输格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生:相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之 ...

  8. 使用 C++ 处理 JSON 数据交换格式

    From: http://blog.csdn.net/xt_xiaotian/article/details/5648388 使用 C++ 处理 JSON 数据交换格式 一.摘要 JSON 的全称为: ...

  9. Ajax学习(3)XMLHttpRequest的使用+数据交换格式(JSON)

    XMLHttpRequest的使用 XMLHttpRequest(简称 xhr)是浏览器提供的 Javascript 对象,可以请求服务器上的数据资源.(jQuery 中的 Ajax 函数,就是基于 ...

最新文章

  1. Android studio 不显示自定义View 的提示
  2. oracle prvg 1901,12c 打补丁analyze时报错
  3. perl 对ENV环境变量的使用
  4. Function types cannot have argument labels 错误解决方案
  5. WX微信小程序路由API使用
  6. 两个应用程序之间的通信
  7. python在linux下打包程序_Python打包程序
  8. 上海臻图信息3DGIS+BIM技术助力智慧城市地下综合管廊建设
  9. matlab 函数semilogy()
  10. Revit API之获取复合结构和材质
  11. 笔记本电脑计算机无法显示u盘,笔记本不识别u盘怎么办_笔记本电脑不读U盘如何解决-win7之家...
  12. 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机器学习中的因果关系
  13. floor关键字用法:
  14. 房产估值模型训练及预测结果
  15. 少儿编程scratch与机器人
  16. 什么是云报修?它有什么特点?
  17. 【频率计】基于FPGA的频率计设计
  18. 多edittext监听变化的优化
  19. Pr 入门教程如何创建动画开头标题?
  20. ETF动量轮动+RSRS择时,RSRS修正标准分,回撤降至16%

热门文章

  1. 测试工程方法:判定表驱动法
  2. USACO Section2.2 Preface Numbering 解题报告 【icedream61】
  3. 返回行javascript比较时间大小
  4. CString 和 char * 的相互转换
  5. Devpress.XtraGrid.GridControl.GridView属性
  6. (转)petshop4.0中的Profile理解(匿名用户身份)
  7. 【logstash】logstash monitor
  8. 【Java】springboot学习笔记二
  9. 【mysql】在Linux中通过yum安装MySQL数据库,可以实现远程登录数据库
  10. html下拉表覆盖透明,css透明元素如何遮挡住fixed元素