JSON:结构化数据格式
2024-09-06 00:46:26
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相同
最新文章
- BZOJ4426 : [Nwerc2015]Better Productivity最大生产率
- Quantum &; r2q
- CSS Flex弹性布局
- #maven解决乱码问题
- 解决jQuery.live在mobile safari(iphone / ipad / ipod)绑定失败的问题
- Swift 书面 ToDo App
- Octopus——excel导入导出工具
- CentOs6.8 hadoop集群搭建过程中的问题
- [最短路]信使(msner)
- RabbitMQ基础知识及Linux安装
- .NET实现IoC
- kubernetes namespace Terminating
- SQL-14 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。
- 修改gitlab仓库地址
- nodejs 搭建自己的简易缓存cache管理模块
- THREE.JS(如何想场景中添加物体对象)
- ubuntu安装conda
- mac下安装wxPython2.8.12.1方法
- 一.jQuery源码解析之总体架构
- 复制自身程序到windows目录和system32目录下