我有一個紅寶石散列,其中的鍵是網址,值是整數。我將散列轉換爲JSON,我想知道是否可以通過AJAX請求發送URL內的JSON,然後從params散列中提取該JSON。您可以通過網址發送JSON嗎?
此外,我將發送一個JSONifyed紅寶石散列回客戶端。如果我在我的AJAX函數中有一個成功的回調函數,我在data
變量中接收數據,那麼如何使用JQuery解析JSON?
請讓我知道,如果我需要更具體。
我有一個紅寶石散列,其中的鍵是網址,值是整數。我將散列轉換爲JSON,我想知道是否可以通過AJAX請求發送URL內的JSON,然後從params散列中提取該JSON。您可以通過網址發送JSON嗎?
此外,我將發送一個JSONifyed紅寶石散列回客戶端。如果我在我的AJAX函數中有一個成功的回調函數,我在data
變量中接收數據,那麼如何使用JQuery解析JSON?
請讓我知道,如果我需要更具體。
是的,你可以沒有問題。無需手動編碼/解碼!
您的代碼會是這樣的:
var jsonParam = '{"name":"Edgar"}'; //Sample json param
$.ajax({
...
type: "get", //This sends in url
data: {jsonParam: jsonParam}, //This will encode your json for url automatically
dataType: "json", //With this the response will be automatically json-decoded!
success: function(response){ //Assuming your server output was '{"lastName":"Villegas"}' as string
alert(response.lastName);
}
});
正如你所看到的,是不需要手動編碼/解碼。 Jquery處理這一切!
希望這會有所幫助。乾杯
PS:如果由於某種原因,您需要手動對url進行編碼/解碼,請使用javascript的encodeURIComponent(string)
和$.parseJSON(jsonString)
方法。
等待,所以通過指定'dataType:「json」'我不需要解析服務器上的JSON? (例如JSON.parse(json_here))。另外,如果我決定將它作爲POST請求發送,我將如何使用ruby訪問服務器上的JSON? –
是的,你可以傳遞json對象作爲get或post參數。
爲了使用Jquery解析json字符串,你可以使用$ .parseJSON。
我的意思是通過url本身。但是,如果我將它張貼並在'data'選項中發送,我將如何從控制器訪問它? –
這取決於你的服務器端代碼。例如,在C#中,您可以使用Request [elementName],或者在控制器操作中,您可以指定確切的參數名稱,它將在執行操作時自動填充。 – ShankarSangoli
@ShankarSangoli它會工作,但是在get/query參數中傳遞JSON對象是一個好習慣嗎? – Nitin
如果你正在做AJAX請求,爲什麼不發佈它,而不是發送JSON作爲URL的一部分... – Endophage
@Endophage如果我這樣做,那麼我將如何從服務器訪問JSON? –