ajax如何傳送數組、JSON.parse和JSON.stringify區別,

來源:互聯網
上載者:User

ajax如何傳送數組、JSON.parse和JSON.stringify區別,

【ajax如何傳數組給php?有哪些辦法?】
首先瞭解:
data有兩種傳參類型,一個對象(Object),而是字串(String)。而物件類型必須是索引值對的格式。
基於data只能傳送兩種類型的資料 (js是這樣,jq會把數組轉化成string),所以需要一定的方法把數組轉化為json格式,如果手動的話是很不現實的,如果這個數組足夠大,所以一定會有已經成型的方法實現了這個功能。
當時經過百度後,我認為靠譜的方法。

1.$.toJson(“要轉換的數組”)2.JSON.stringify("要轉化的數組")。

現在我把被選中的多選框的value儲存在一個數組checked_value[]中,想要把它傳給php。(不是對象也不是字串,是單純的數組)

複製這個數組,接下來讓它被轉化成【索引值對】的Json格式。

因為這個數組jsonstr本身是一個普通數組。
所以在寫入ajax的data時,不能直接data:jsonstr,而是要寫成data:{jr:jsonstr},

這樣才是索引值對。預設的鍵從0開始,值就是原來數組裡那些value。
(當時不是太明白,各種測試修改得到的結果)

很囉嗦對不對?

之前寫在空間裡的時候估計也迷迷糊糊的,現在又重新查了資料又明白了一些。

說一下兩個方法原本的用法。
1.JSON.parse(“要轉換的數組”)
2.JSON.stringify(“要轉化的數組”)。

首先,兩個方法的用法是有差別的。
JSON.stringify是從一個對象中解析出字串
JSON.parse是從一個字串中解析出json(索引值對)。
所以在使用的時候如果參數不對應,就不能正確轉換。

具體用法:
JSON.parse:字串->索引值對
var str = ‘{“address”:”明水”,”phone”:”1237828”}’;
JSON.parse(str);

>
address: “明水”
phone: “1237828”

需要注意的是,單引號後花括弧。雙引號就麻煩了。貌似還要在花括弧裡面的雙引號前面加\,否則算語法錯誤。

JSON.stringify:對象->字串

var a = {a:1,b:2}

JSON.stringify(a)

>
“{“a”:1,”b”:2}”

貼一個很強大的解析。
http://www.jb51.net/article/29893.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.