[英]Values from JSON formatted string (from REST API) in C#
最近,我有個約會,我需要使用它的REST API從Cloud下載一些數據,並將該“字符串”中的值存儲在對象或某些變量中。 下載已經完成,我現在要做的就是解析數據。
到目前為止,我編寫了以下代碼:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("some link");
request.ContentType = "application/json; charset=utf-8";
request.Method = "GET";
request.Headers.Add("Carriots.apiKey", "key");
using (WebResponse response = request.GetResponse())
{
using(Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
JObject json = JObject.Parse(reader.ReadToEnd());
Console.WriteLine(json.ToString());
}
}
這是輸出:
{
"total_documents": 3,
"result": [
{
"_id": "...",
"protocol": "v1",
"checksum": "",
"_t": "str",
"at": 1444134377,
"device": "-just a device-",
"data": {
"field1": "123",
"field2": "1536"
},
"id_developer": "....",
"created_at": 1444134377,
"owner": "-someUser-"
}
]
}
我知道互聯網上有很多解決方案,但是都沒有我需要的解決方案。 好的,我找到了一些東西,但是它在每一行上進行迭代並以這種方式檢查值,但是就我而言,我可以有成千上萬個這樣的輸出。
是否有任何方法可以使用某種內置函數來完成所有這些操作(我的意思是解析),或者唯一的解決方案是迭代或編寫一些正則表達式?
假設json始終遵循這種格式,請定義模型
public class jsonData{
public int total_documents {get;set;}
public resultData result {get;set;}
}
public class resultData{
public int _id {get;set;}
public string protocol {get;set;}
....
}
然后使用反序列化
Json.Deserialize<jsonData>(yourstring)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.