簡體   English   中英

C#中JSON格式的字符串(來自REST API)的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM