2012-05-31 191 views
3

我很感興趣如何編碼POST params。 在應用程序中的一個,我發現下面的方法,讓說我有以下對象:編碼json到字符串

selection={"ty":"mc","cl":{"loc_type":0,"si":9,"aps":false},"sr":[]} 

在POST請求它採用以下形式:

selection=%7B%22ty%22%3A%22mc%22%2C%22cl%22%3A%7B%22loc_type%22%3A0%2C%22si%22%3A9%2C%22aps%22%3Afalse%7D%2C%22sr%22%3A%5B%5D%7D 

哪個應用方法這裏?

回答

1

同樣的效果可以通過使用來實現和JSON.stringify功能:

"selection=" + encodeURIComponent(JSON.stringify(selection)) 
0

它被稱爲URL編碼。

它使用ASCII表示法替換URI模式中具有特殊含義的非ASCII字符和字符:每個不可打印的字符將被編寫爲%xy,其中xy是該字符的ASCII表中的索引。

有支持它出的現成的許多編程語言:

  • 在JavaScript中,你可以使用使用encodeURIComponent()或者是encodeURI()函數。

您可以輕鬆地調用它是這樣,例如:

var myjson = '{my:json}'; 
url_encoded_json = encodeURIComponent(myjson); 
alert(url_encoded_json); 

其它語言:

  • PHP有rawurlencode()函數。
  • ASP具有Server.URLEncode()函數。
  • Python有urllib.urlencode()函數。
  • Java有java.net.URI中的(URL).toASCIIString()函數
+0

'encodeURIComponent'會更合適。 –

0

它只是URL編碼

退房內置函數encodeURIComponent方法(STR)與encodeURI(STR)

0

在JavaScript的方法被稱爲encodeURIComponent()

alert(encodeURIComponent('{"ty":"mc","cl":{"loc_type":0,"si":9,"aps":false},"sr":[]}'));