2011-07-21 49 views
1

我必須使用jQuery.ajax()向PHP發送一個2維數組(以及其他幾個變量)。我相信我的選擇是:Serialize json 2維數組,發送兩個數組還是其他?

  1. 序列化到JSON與JSON-js
  2. 發送兩個數組作爲CSV字符串,並重新編譯的另一邊。

我的問題是:

A.這有什麼錯選項#2,如果我不希望包括一個小功能的另一個庫? B.除選項#1和#2之外是否還有其他選項?

謝謝!

+0

既然你已經包含了jQuery作爲標記,你可以使用jQuery ['.serializeArray'](http://api.jquery.com/serializeArray/)函數來序列化JavaScript數組和PHP ['json_decode '](http://php.net/json_decode)來解碼它? –

+0

'.serializeArray' ...這個名字表明它正是我要找的東西。我查看了你提供的鏈接,它似乎需要'$(「:input」)'或$('form')'和*返回一個包含表單元素名稱和值的數組。所以(如果我使用的是表單),不幸的是,它給我帶來了同樣的問題。但感謝鏈接 - 很高興知道它存在! – Kyle

回答

2

你可以試試:

JSON.stringify(array); 

不需要額外的庫。

+0

JSON 1.4.1,這是我使用的庫缺少JSON.stringify。不知道它是否被重新引入新版本。 JSON.parseJSON允許解碼,但沒有我知道的編碼功能。看看這個:http://stackoverflow.com/questions/2277405/json-stringify-missing-from-jquery-1-4-1 – Kyle

+0

但是,stringify現在本地支持最近的瀏覽器... – ChristopheCVB

+0

和yoy可以還寫你自己的stirngifier,它不是很複雜... – ChristopheCVB

0

我確定還有其他選擇;永遠有一百萬種方法去養貓。但我建議選項#1。當你把它作爲JSON字符串發送(使用一個非常小的庫並且只有兩個方法)時,你可以使用json_decode在PHP中解碼它。沒有大驚小怪,沒有麻煩。

0

答:如果我不希望包含 另一個庫用於小函數,那麼選項#2是否有任何錯誤?

您可能會在轉義/取消部分字符時遇到問題。

B.除選項#1和#2以外是否還有其他選項?

當然必須有。但我會用JSON去,這是最簡單和最乾淨的解決方案。