在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数组时的解析