在js中,js變量和JSON是兩個不同數(shù)據(jù)格式,兩者的儲存方式自然不相同。JSON格式是一種數(shù)據(jù)交換的規(guī)則,js變量則是javascript在程序需求場景中的數(shù)據(jù)表示。在js與不同語言的服務(wù)端進行數(shù)據(jù)交換過程中,js能夠有內(nèi)置的方法將其變量轉(zhuǎn)化為JSON格式。
JSON.parse(data);//JSON解碼
JSON.stringify(data);//JSON編碼
但是對于JS數(shù)組而言,如果需要在之后需要進行JSON格式化,那么在初始化時不能用new Array(),應(yīng)該使用‘{}’將其初始化。
var data = new Array();
data['password'] = '123456789';
data['account'] = 'wdnmdJS';
JSON.stringify(data);
這樣數(shù)據(jù)經(jīng)過JSON編碼后會得到一個空值null
正確的方法如下:文章來源:http://www.zghlxwxcb.cn/news/detail-711030.html
var data = {};
data['password'] = '123456789';
data['account'] = 'wdnmdJS';
JSON.stringify(data);
關(guān)于其中的原理其實我還沒搞懂,讓我再琢磨琢磨兩者的區(qū)別,然后我在另寫一篇筆記來說這件事。
“ var data = {} ”本質(zhì)是創(chuàng)建了一個空對象,“ var data = new Array() ”的本質(zhì)則是創(chuàng)建了一個空的數(shù)組。像 "parameter['索引']" 這樣以字符串作為索引來獲取數(shù)組中的 value 是不行的,數(shù)組只能接受自然數(shù)整型變量的索引如:0,1,2,....。所以, “data['password'] = '123456789';” 其實并不是數(shù)組的獲值,而是對象的獲值方式(就是取得對象內(nèi)屬性的值)。在數(shù)組初始化后,以 “data['password'] = '123456789'; data['account'] = 'wdnmdJS';”來賦值的話是無效的賦值方式,這兩個字符串是不會被加進數(shù)組里的,所以得出來的值為空值
外部文章鏈接:
(1)php接受post傳值的方法 - 知乎 (zhihu.com)
(2)淺談PHP接收POST數(shù)據(jù)方式-php教程-PHP中文網(wǎng)
(3)javascript怎么將數(shù)組轉(zhuǎn)為json格式-js教程-PHP中文網(wǎng)
(4) 關(guān)于js解析JSON數(shù)組時的解析文章來源地址http://www.zghlxwxcb.cn/news/detail-711030.html
到了這里,關(guān)于js將數(shù)組變量json格式化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!