JSON:结构化数据格式
JSON是javascript的子类,也是作为更好的互联网传输结构化数据格式逐渐取代XML,因此要理解JSON,重要的是理解它是一种数据格式,不是一种编程语言。
语法
//javascript var object = {
"name":"lihua",
"age":"20",
"gender":undefined
} //JSON {
"name":"lihua",
"age":"20",
}
由于JSON是数据格式,所以没有变量的概念,同时键值必须使用双引号。
JSON的stringify与parse方法(序列化与解序)
早期的JSON解析器基本上都使用了eval()函数,但是可能会执行恶意代码(eval函数可以解析,解释并返回js对象。ECMASCRIPT 5再后来规范了JSON行为,定义了全局对象JSON,并添加了两个JSON方法:stringify()和parse()。
var person = {
name:"lihua",
age:"18",
hobby:[
"basketball",
"badminton"
],
action:function(){
alert("help")
}
} var jsonText = JSON.stringify(book)
//{"name":"lihua","age":"18","hobby":["basketball","badminton"]} var jsText = JSON.parse(jsonText);
在序列化时,函数与原型对象成员都将被忽略(JSON只接受两种复杂类型对象与数组),值为undefined的属性值也会被跳过。
序列化选项与结构化选项
var person = {
name:"lihua",
age:"18",
hobby:[
"basketball",
"badminton"
]
}
//stringify第二个参数为过滤项
var jsonText1 = JSON.stringify(person,["name","hobby"]);
//{"name":"lihua","hobby":["basketball","badminton"]}
var jsonText2 = JSON.stringify(person,function(key,value){
switch(key){
case "name":
return "zhoujielun";
case "age":
return 17;
case "hobby":
return value.join(",")
default:
return value
}
});
//{"name":"zhoujielun","age":17,"hobby":"basketball,badminton"} //stringify第三个参数为字符串缩进
var jsonText3 = JSON.stringify(person,null,"--");
// {
// --"name": "lihua",
// --"age": "18",
// --"hobby": [
// ----"basketball",
// ----"badminton"
// --]
// } //JSON.parse与stringify相同
JSON:结构化数据格式的更多相关文章
- Postman Postman测试接口之JSON结构化数据提交
Postman测试接口之JSON结构化数据提交 by:授客 QQ:1033553122 本文主要是针对结构比较复杂一点的JSON协议数据的提交做个简单说明 举例: 用户下订单接口 接口方向 客户端 ...
- 自己DIY出来一个JSON结构化展示器
说来也巧,这个玩意,一直都想亲手写一个,因为一直用着各种网上提供的工具,觉得这个还是有些用途,毕竟,后面的实现思路和原理不是太复杂,就是对json的遍历,然后给予不同节点类型以不同的展现风格. 我这次 ...
- 08 Json结构化Datetime时间以及保留中文
错误描述: import json import datetime a = datetime.datetime.now() print(a) b = json.dumps(a) print(b) 如上 ...
- Beats: 使用 Filebeat 进行日志json结构化 - Python
文章转载自:https://elasticstack.blog.csdn.net/article/details/106688240
- Atitit 大json文件的结构化查看解决方案,高性能的jsonview attilax总结.docx
Atitit 大json文件的结构化查看解决方案,高性能的jsonview attilax总结.docx 1.1. 实现目标:1 1.2. 实现key与value类型的..一直分析到非 jsonob ...
- 利用Gson和SharePreference存储结构化数据
问题的导入 Android互联网产品通常会有很多的结构化数据需要保存,比如对于登录这个流程,通常会保存诸如username.profile_pic.access_token等等之类的数据,这些数据可以 ...
- Structured Streaming Programming Guide结构化流编程指南
目录 Overview Quick Example Programming Model Basic Concepts Handling Event-time and Late Data Fault T ...
- spark结构化数据处理:Spark SQL、DataFrame和Dataset
本文讲解Spark的结构化数据处理,主要包括:Spark SQL.DataFrame.Dataset以及Spark SQL服务等相关内容.本文主要讲解Spark 1.6.x的结构化数据处理相关东东,但 ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
随机推荐
- split 分割文件
1.命令功能 split将文件分割成多个碎片文件. 2.语法格式 split option input prefix split 选项 输入文件名 输出文件名前缀 参数说明 参数 参 ...
- AOP切面详解
一.spring-aop.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns= ...
- 创建entityManager
1 需要persistence.xml 完全通过属性配置没成功 <persistence xmlns="http://java.sun.com/xml/ns/persistence&q ...
- Linux shell中自动完成登录
在写shell脚本时,需要登录到不同的服务器上执行相关命令,在未建立信任之前如何批量操作. 1.ssh 首次登录服务器时会提示RSA key fingerprint输入yes/no,可以通过下面的方法 ...
- codeforces 848B - Rooter's Song(构造+几何)
原题链接:http://codeforces.com/problemset/problem/848/B 题意:好多个人分别从x,y轴不同位置不同时间往垂直坐标轴方向移动,一旦相遇他们转向,问所有人的到 ...
- 20180826(03)-Java泛型
Java 泛型 如果我们只写一个排序方法,就能够对整形数组.字符串数组甚至支持排序的任何类型的数组进行排序,这该多好啊. Java泛型方法和泛型类支持程序员使用一个方法指定一组相关方法,或者使用一个类 ...
- js不区分大小写匹配并代码高亮,且不改变原来文本大小写格式
//高亮字符串 string: 需要处理的字符串,keyword:键盘输入的内容 function heightLight(string, keyword) { var reg = new RegEx ...
- 笨办法学Python(learn python the hard way)--练习程序31-35
下面是练习31-练习35,基于python3 #ex31.py 1 print("You enter a dark room witn two doors. Do you go throug ...
- 阿里云code下载代码和更新代码
1- 本地新建一个文件夹,进入文件夹下面右击打开git 2- Git init初始化一个.git文件夹 3- Git clone git@code.aliyun.com:username/space- ...
- Codeforces D. Array Division
题目链接:http://codeforces.com/contest/808/problem/D 题意: 这一题给你一个数组,你可以调换某一个数的位置,使得这个数组可以分成2半,前半段的和等于后半段( ...