2009-06-29 73 views
0

我只是想澄清我的幾個問題。我正在構建一個JSON字符串並使用context.response返回它。我只是調用一個.ashx處理程序的URL並嘗試返回JSON。關於傳遞和格式化JSON給HttpResponse的問題

以下是我迄今走近它:

清單產品= GetCarolProducts(); List images = new List();

foreach(Product p in products) 
{ 

    string imageTag = string.Format(@"<img src=""{0}"" alt=""""></li>", Util.ImageUrl(p.Image, false)); 

    images.Add(imageTag); 
    i++; 
} 

string jsonString = images.ToJSON(); 
context.Response.Write(jsonString); 

我在這裏使用的例子helper方法的JSON:http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net-3-5.aspx

所以我的問題是:

1)我不想回傳整個產品對象。事實上,我根本不想回頭。我想回傳一些我在我的foreach循環中製作的圖像標籤。所以我所做的只是在產品的每次迭代中創建該字符串,並將其添加到新的字符串類型列表中。我認爲這很好,並且傳遞一個通用字符串列表可以被序列化爲JSON ...該字符串本身就是一個對象,所以這應該沒問題?事情是,它不會有任何屬性,所以我不知道。我想如果這是行得通的,就好像我要傳遞一個對象,例如產品一樣,它至少具有諸如ID,名稱等屬性,那麼我想我會是個問題。

所以如果這不是去工作,我想知道如何才能收到一份給我的JSON列表。我相信雖然我仍然需要能夠通過鍵/值訪問返回的JSON。但就數據而言,這就是我在jQuery中需要的全部內容,只是一堆圖像。

因此,因此我的問題是,男烏斯我傳遞中有屬性的對象,使我返回的JSON有一些PARAMS我可以通過jQuery的回升,因爲jQuery的創建基於這些屬性你一個很好的類型對象?我不認爲發送一個通用的字符串列表將工作在我的情況。

所以不太清楚如何設置,並只傳遞圖像列表到我的ToJSON幫助器方法,並最終傳遞給我的jQuery JSON解析。

2)不確定是否需要做任何特殊的事情來告訴context.response,它是JSON,而不是傳遞最後一個字符串,這個輔助方法在這裏創建?使用XML時,您必須告訴響應將其格式化爲具有上下文的XML .Response .ContentType =「text/xml」。那麼如果我傳回JSON字符串,我需要指定什麼?

回答

1

對於響應內容類型,請看Douglas Crockford的JSONRequest提案。

Content-Type: application/jsonrequest 
+0

謝謝,我想這涵蓋了我的一個問題。 – PositiveGuy 2009-06-29 03:12:06