我不知道如何描述这一点,但我会尽我所能。我有一个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