前端js把json字符串转json对象

作者:原创时间:2022-06-20
文档

最近在逛编程问题解答的时候,看到这样的提问:如何将一个JSON数组类型的字符串转换为JSON数组,然后遍历数组取出JSON对象,最后在JS中取出里面的属性。在这里给同样有疑问的朋友做下解答,

首先我们追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?本文将从以下几个方面去理解JSON:

首先是对“JSON是一种轻量的数据交换格式”的理解;

然后来看经常被混为一谈的JSON和JS对象的区别;

json字符串转换成json数组并遍历属性值;

什么是JSON?JSON是一种轻量级的数据交换格式。

如果没有去过JSON的官方介绍可以去一下这里,官方介绍已经很清楚地表述了JSON是什么,我将JSON是什么提炼成以下几个方面:

1. 一种数据格式

什么是格式?就是规范你的数据要怎么表示,举个栗子,有个人叫“二百六”,身高“160cm”,体重“60kg”,现在你要将这个人的这些信息传给别人或者别的什么东西,你有很多种选择:

以上所有选择,传递的数据是一样的,但是你可以看到形式是可以各式各样的,这就是各种不同格式化后的数据,JSON是其中一种表示方式。

2. 基于文本的数据格式

JSON是基于文本的数据格式,相对于基于二进制的数据,所以JSON在传递的时候是传递符合JSON这种格式(至于JSON的格式是什么我们第二部分再说)的字符串,我们常会称为“JSON字符串”。

3. 轻量级的数据格式

在JSON之前,有一个数据格式叫xml,现在还是广泛在用,但是JSON更加轻量,如xml需要用到很多标签,像上面的例子中,你可以明显看到xml格式的数据中标签本身占据了很多空间,而JSON比较轻量,即相同数据,以JSON的格式占据的带宽更小,这在有大量数据请求和传递的情况下是有明显优势的。

4. 被广泛地用于数据交换

轻量已经是一个用于数据交换的优势了,但更重要的JSON是易于阅读、编写和机器解析的,即这个JSON对人和机器都是友好的,而且又轻,独立于语言(因为是基于文本的),所以JSON被广泛用于数据交换。

以前端JS进行ajax的POST请求为例,后端PHP处理请求为例:

可以看到,相同的数据在这里有3种不同的表现形式,分别是前端的JS对象、传输的JSON字符串、后端的PHP对象,JS对象和PHP对象明显不是一个东西,但是由于大家用的都是JSON来传递数据,大家都能理解这种数据格式,都能把JSON这种数据格式很容易地转化为自己能理解的数据结构,这就方便啦,在其他各种语言环境中交换数据都是如此。

经常被混为一谈的JSON和JS对象很多时候都听到“JSON是JS的一个子集”这句话,而且这句话我曾经也一直这么认为,每个符合JSON格式的字符串你解析成js都是可以的,直到后来发现了一个奇奇怪怪的东西…

1. 两个本质不同的东西为什么那么密切

JSON和JS对象本质上完全不是同一个东西,就像“斑马线”和“斑马”,“斑马线”基于“斑马”身上的条纹来呈现和命名,但是斑马是活的,斑马线是非生物。

同样,”JSON”全名”JavaScript Object Notation”,所以它的格式(语法)是基于JS的,但它就是一种格式,而JS对象是一个实例,是存在于内存的一个东西。

说句玩笑话,如果JSON是基于PHP的,可能就叫PON了,形式可能就是这样的了[‘propertyOne’ => ‘foo’, ‘propertyTwo’ => 42,],如果这样,那么JSON可能现在是和PHP比较密切了。

此外,JSON是可以传输的,因为它是文本格式,但是JS对象是没办法传输的,在语法上,JSON也会更加严格,但是JS对象就很松了。

那么两个不同的东西为什么那么密切,因为JSON毕竟是从JS中演变出来的,语法相近。

2. JSON格式别JS对象语法表现上严格在哪

先就以“键值对为表现的对象”形式上,对比下两者的不同,至于JSON还能以怎样的形式表现,对比完后再罗列。

可以看到,相对于JS对象,JSON的格式更严格,所以大部分写的JS对象是不符合JSON的格式的。

json字符串转换成json数组并遍历属性值方式一:使用Iterator迭代器遍历取值

方法二:使用for循环

显示全文
java对象转json对象命令 红包数字寓意天天开心 检查妇科需要多少费用 做一个宫颈筛查需要多少钱 河南十大帅哥明星 河南籍男明星有哪些 最好看的末世小说排名 十大必看末世小说 虱子的繁殖速度有多快 中国十大传统点心 传统糕点点心大全 和蟋蟀一样发声的昆虫有哪些 最好挣钱的行业排行 哪个行业比较赚钱 台湾十大特色小吃 十大营养价值最高的鱼 最具营养的十种鱼类 世界十大最丑陋的鱼类 世界上最丑的十种鱼 在镇上过年卖什么赚钱 炮仗面是什么 砖是怎么制作的 接种是什么意思 奥运会举办国家有中哪些 历届举办奥运会的国家 蔚字的含义 形容绿色的词语有哪些 紫荆花寓意与花语 小兴安岭在哪个省 小兴安岭是在哪里 数组拆分成多个数组 js数组移除制定对象 适合夏天干的小生意 夏天地摊卖什么最挣钱 网上不起眼的5个暴利小生意 在家可以怎么赚钱 月入2万的5个小生意 适合摆地摊的生意 现在做什么生意最冷门 月入2万的4个小生意