前言
开始接触JSON是在学习JS过程中,学习的时候没有什么共鸣,这次在项目中又碰到了JSON,在项目中JSON变得不再那么的陌生,想要去深入的了解一下这位“老朋友”,今天就来总结一下JSON到底是什么
概述
JSON是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式。是JavaScript的一个严格的自己,利用JavaScript中的一些模式来表示结构化数据。
自己的理解:JSON就是一种以字符串格式搭载数据的结构
语法
一、json语法可以表示三种类型的值:
- 简单值:字符串、数值、布尔值和null。但是不支持Java
- 对象
- 数组
二、与JavaScript格式对比
对象的表示
//对象字面量的显示
var box={
name:'Lee',
age:100
};
//json对象标识
{
"name":"Lee",
"age":100
}
数组的表示
//普通数组
var box=[100,'lee',true];
//Json数组
[100,"lee",true]
JSON的加载
一般情况下,我们可以把JSON结构数据保存到一个文本文件里,然后通过XMLHttpRequest对象去加载它,得到这串结构数据字符串
解析与序列化
解析:字符串拿出来,还原成JavaScript原生值(对象数组普通值)
序列化:对象数组普通值转化成JSON的数据结构
我们可以使用eval()来解析JSON字符串
//模拟加载JSON数据字符串的过程
var json='[{"title":"a","num":1},{"title":"b","num":2}]'
alert(json);
//使用eval()来执行字符串里的JS代码
var box=eval(json); //解析JSON字符串,让他变成JavaScript代码
alert(box[1].title);
但是使用Eval()函数是不安全的,它会执行一些恶意代码,我们最好使用JSON对象的解析和序列化的方法:
1.原生JS值————JSON字符串:stringify();
2.JSON字符串————JS原生值:parse()
还可以使用函数进行JSON对象的过滤
<span style="font-size:18px;">var json=JSON.stringify(box,function(key,value){
if(key=='title'){
return 'MR.'+value;
}else
{
return value;
}
});
alert(json);</span>
总结
在项目中遇见,然后在看JS的视频感觉就熟悉了好多,也有了共鸣,知识是需要反刍的,我们第一次吞下去肯定消化不小,就要通过一次次的反刍,才能消化吸收