JSON初探

前言

       开始接触JSON是在学习JS过程中,学习的时候没有什么共鸣,这次在项目中又碰到了JSON,在项目中JSON变得不再那么的陌生,想要去深入的了解一下这位“老朋友”,今天就来总结一下JSON到底是什么

概述

      JSON是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式。是JavaScript的一个严格的自己,利用JavaScript中的一些模式来表示结构化数据。

      自己的理解:JSON就是一种以字符串格式搭载数据的结构

语法

一、json语法可以表示三种类型的值:
  1. 简单值:字符串、数值、布尔值和null。但是不支持Java
  2. 对象
  3. 数组
二、与JavaScript格式对比

对象的表示
//对象字面量的显示
var box={
	name:'Lee',
	age:100
};

//json对象标识
{
	"name":"Lee",
	"age":100
}

       json的name是双引号,name的值也是双引号,而JS中name是没有引号的,而name的值变成了单引号。 因为在前边也说过了,JSON就是一个字符串,所以任何表示都应该加上引号表示字符串。


数组的表示

//普通数组
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的视频感觉就熟悉了好多,也有了共鸣,知识是需要反刍的,我们第一次吞下去肯定消化不小,就要通过一次次的反刍,才能消化吸收


评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值