限制来自 API 到 select 属性的 JSON 字符串响应
Limiting a JSON string response from an API to select attributes
目前,我正在使用 [WebMethod]
调用 API 并将响应作为 JSON
字符串。
public string GetFloodData()
{ ...
WebRequest requestObj = WebRequest.Create(url);
requestObj.Method = "GET";
requestObj.ContentType = "application/json";
responseObj = (HttpWebResponse)requestObj.GetResponse();
using (Stream stream = responseObj.GetResponseStream())
{
StreamReader sr = new StreamReader(stream);
strresult = sr.ReadToEnd();
sr.Close();
}
return strresult;
...
}
当我调用 GetFloodData()
时,我在浏览器中收到以下响应:
<string xmlns="http://tempuri.org/">
{"ListEvents":
[{"EventID":1,"EventName":"Debby2000","State":"PR","EventType":"Tropical or
Extratropical","Days":5,"LSTStart":"\/Date(9666432000000000)\/",
"LSTEnd":"\/Dat e(967075200000-0000)\/"}, {...}....]}
此时(在我把它解析为正式的JSON Object
之前),我只想去掉我不想要的东西("Days"
,"LSTStart"
,和"LSTEnd"
) 并保留我想要的。我将如何限制响应中返回的属性?
您可以使用 class 对其进行反序列化,并且在 class 中,您可以只写入您确实想要保留的变量。虽然,保持 Json 和 class 的结构相同。变量可以少,但结构要一样
目前,我正在使用 [WebMethod]
调用 API 并将响应作为 JSON
字符串。
public string GetFloodData()
{ ...
WebRequest requestObj = WebRequest.Create(url);
requestObj.Method = "GET";
requestObj.ContentType = "application/json";
responseObj = (HttpWebResponse)requestObj.GetResponse();
using (Stream stream = responseObj.GetResponseStream())
{
StreamReader sr = new StreamReader(stream);
strresult = sr.ReadToEnd();
sr.Close();
}
return strresult;
...
}
当我调用 GetFloodData()
时,我在浏览器中收到以下响应:
<string xmlns="http://tempuri.org/">
{"ListEvents":
[{"EventID":1,"EventName":"Debby2000","State":"PR","EventType":"Tropical or
Extratropical","Days":5,"LSTStart":"\/Date(9666432000000000)\/",
"LSTEnd":"\/Dat e(967075200000-0000)\/"}, {...}....]}
此时(在我把它解析为正式的JSON Object
之前),我只想去掉我不想要的东西("Days"
,"LSTStart"
,和"LSTEnd"
) 并保留我想要的。我将如何限制响应中返回的属性?
您可以使用 class 对其进行反序列化,并且在 class 中,您可以只写入您确实想要保留的变量。虽然,保持 Json 和 class 的结构相同。变量可以少,但结构要一样