最近,我得到了一個約會,我需要使用它的REST API從雲端下載一些數據,並將該字符串的值存儲在對象或某些變量中。下載完成後,我現在需要做的就是解析數據。C#中JSON格式字符串的值(來自REST API)
到現在爲止我做了這樣的代碼:
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在C#或JS? – stackoverfloweth
反序列化就是你要找的東西! –
試試Linq to Json http://www.newtonsoft.com/json/help/html/LINQtoJSON.htm – Matteo