我不知道如何描述這一點,但我會盡我所能。我有一個C#應用程序,它接受我的Web應用程序的API,並將它的JSON響應用作應用程序的數據。當用戶點擊一個按鈕,然後它從URL中提取響應並解析它以便使用它:C#類具有多個返回字符串和int
var client = new WebClient();
client.Headers.Add("User-Agent", "Nobody");
var response = client.DownloadString(new Uri("http://localhost:45035/api/products/1"));
var responsestring = response.ToString();
JObject o = JObject.Parse(responsestring);
Int32 Id = (int)o["Id"];
string Name = (string)o["Name"];
string Category = (string)o["Category"];
float Price = (float)o["Price"];
string Website = (string)o["Website"];
label1.Text = Name;
label2.Text = "$" + Price.ToString();
label3.Text = "Category: " + Category;
label4.Text = Id.ToString();
這很好。問題是,當我有成千上萬的產品時,這個應用程序將有上千個代碼塊,就像這樣,只有DownloadString Uri發生了變化。我想把它變成一個類,這樣我就可以插入適當的Uri(例如,http://example.com:45035/api/products/1或http://example.com:45035/api/products/2等),並從中獲取名稱,類別,ID等,這樣我的代碼就會更清晰,但是我無法弄清楚如何做到這一點。
我想是這樣的:
public static object responseinfo(string url)
{
var client = new WebClient();
client.Headers.Add("User-Agent", "Nobody");
var response = client.DownloadString(new Uri(url));
var responsestring = response.ToString();
JObject o = JObject.Parse(responsestring);
Int32 Id = (int)o["Id"];
string Name = (string)o["Name"];
string Category = (string)o["Category"];
float Price = (float)o["Price"];
string Website = (string)o["Website"];
}
,讓我打電話:jsonfind( 「HTTP://本地主機:45035/API /產品/ 1」),但我不知道怎麼弄的串出來,所以我可以像我以前那樣在文本框中使用它們。
我希望這種做法自那以後。這是我的第一個問題,所以如果我需要改變一些,或者很多,請告訴我。
爲了記錄我正在使用Json.NET處理JSON響應。
感謝,
米切爾
你好:坦率地說,我不明白:(問:您最初的代碼塊,'VAR的客戶=新的Web客戶端(); .. Q:如果是這樣的話,爲什麼不直接創建該類的名稱,類別,價格和網站成員? – paulsm4 2012-07-26 04:52:15
該代碼適用於按鈕:Button1_Click。按鈕被點擊,第一個代碼塊被執行 – 2012-07-26 05:06:43
行 - 那麼爲什麼不讓Name和其他類的成員? – paulsm4 2012-07-26 05:56:31