在js中,js变量和JSON是两个不同数据格式,两者的储存方式自然不相同。JSON格式是一种数据交换的规则,js变量则是javascript在程序需求场景中的数据表示。在js与不同语言的服务端进行数据交换过程中,js能够有内置的方法将其变量转化为JSON格式。

JSON.parse(data);//JSON解码
JSON.stringify(data);//JSON编码

但是对于JS数组而言,如果需要在之后需要进行JSON格式化,那么在初始化时不能用new Array(),应该使用‘{}’将其初始化。

var data = new Array();
data['password'] = '123456789';
data['account'] = 'wdnmdJS';

JSON.stringify(data);

这样数据经过JSON编码后会得到一个空值null
正确的方法如下:

var data = {};
data['password'] = '123456789';
data['account'] = 'wdnmdJS';

JSON.stringify(data);

关于其中的原理其实我还没搞懂,让我再琢磨琢磨两者的区别,然后我在另写一篇笔记来说这件事。
“ var data = {} ”本质是创建了一个空对象,“ var data = new Array() ”的本质则是创建了一个空的数组。像 "parameter['索引']" 这样以字符串作为索引来获取数组中的 value 是不行的,数组只能接受自然数整型变量的索引如:0,1,2,....。所以, “data['password'] = '123456789';” 其实并不是数组的获值,而是对象的获值方式(就是取得对象内属性的值)。在数组初始化后,以 “data['password'] = '123456789'; data['account'] = 'wdnmdJS';”来赋值的话是无效的赋值方式,这两个字符串是不会被加进数组里的,所以得出来的值为空值
外部文章链接:
(1)php接受post传值的方法 - 知乎 (zhihu.com)
(2)浅谈PHP接收POST数据方式-php教程-PHP中文网
(3)javascript怎么将数组转为json格式-js教程-PHP中文网
(4) 关于js解析JSON数组时的解析

posted on 2023-10-24 16:28  念予墨白  阅读(335)  评论(0编辑  收藏  举报