认识JSON的三部曲

第一部:什么是JSON

百度百科:
      JSON全称:javaScript Object Notation
      它基于 ECMAScript (w3c制定的js规范)的一个子集),采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。


通俗理解:
      JSON就是一个通用数据(关键词:数据
通用数据:前后端都可以使用得数据!后端发给前端,前端发给后端,必须都用一种他们都认识的数据才能互相识别。而这个数据就是JSON!(类似中国的普通话是我们国家的通用语言。)
      注意点:JSON它跟任何的编程语言都是无关的!唯一的联系就是它的创造者是从JS的对象格式产生的灵感,进而创造出不同的编程语言的通用数据。


我的概括:
       ①JSON本质是string类型也就是字符!
       ②JSON实质是数据!
       ③数组虽然可以存储数据,但是只能存储简单数据,对象虽然可以存储复杂数据,但是不是所有语言通用!所以JSON从这里演变而来!结构则类似数组和对象。


第二部:JSON的规则

①必须是字符
②基础格式参考JS中的对象(Array和Obj)
③对象格式中的key(键值对的键名)部分必须放在双引号中!!单引号也不行的
④不允许出现没有意义的逗号!
⑤不允许出现函数、undefined、NaN,可以出现null
⑥{}内或者[],再或者同时出现[{}],这些里面都不可以出现单引号!
实例介绍

 var json={"name":"admin","age":18};      //不是JSON ,违背了上述的①;
 var json="{'name':'admin'}";             //不是JSON,违背了上述的③、⑥;
 var json='["hello",1,2]'                 //是JSON,格式参考了数组;
 var json='{"name":function(){....},"x":NaN,“y”:undefined}'    //不是JSON违反了⑤
 var json=‘{“name”:"admin",}’             //不是JSON,违背了上述的④



第三部:JSON的使用

一、对象转JSON:使用JSON.stringify(对象名);
压力测试

   let obj={
	   name:"wangwei",
	   age:19,
	   x:'n',                    //出现了JSON不可以存在的单引号
	   fn:function(){..},        //出现了函数,NaN,undefined
	   y:NaN,
	   z:undefined,
	   flag:true,,             //出现了布尔值,和多余的逗号
   }
                    console.log(JSON.stringify(obj));
        
 **********************************结果显示*********************************
'{
	"name":"wangwei",              //字符依然是字符
	"age":19,				       //数值依然是数值
	"x":"n",					   //原本单引号变成双引号
	"y":null,					   //NaN,undefined都变成了null
	"z":null,
	"flag":true					   //布尔值依然是布尔值,同时多余的逗号也消失了
								   //同时发现函数fn没有了
}'

总结:对象—>JSON
       ①所有的键名都加上了双引号
       ②出现的NaN,undefined都会变成null
       ③函数会被直接过滤掉不要
       ④转变中键值:原本类型不变
       ⑤多余的逗号会被清除留
       ⑥原本的单引号会被改成双引号

二、JSON转对象:使用JSON.parse()

第一:必须有正确格式的JSON
var  json='{"name":"wangwei","age":19,"y":null}';
var  json01='["hello",1,2]';
console.log(JSON.parse(json));
console.log(JSON.parse(json01));
//结果:
{
	name:"wangwei",
	age:19,
	y:null
}

["hello",1,2]

总结:JOSN—>对象
       ①键名去掉双引号
       ②键值为null,依然为null
       ③键值类型不改变



最后牢记一点:

当数据是复杂类型,且多个的话:第一时间先想
‘[{…},{…},{…},{…},…]’
这种形式的JSON!

NZ必胜!
加油!

发布了2 篇原创文章 · 获赞 1 · 访问量 51

猜你喜欢

转载自blog.csdn.net/weixin_46369560/article/details/104740067