簡體   English   中英

將 API 格式的 JSON 響應轉換為 c# 並打印值

[英]Convert API Response in JSON format to c# and print values

我有一個 API 回復,如下所示,

{
"Drivers.Pandemic.PeopleCount": {
"Value": "94",
"LastUpdatedTime": "2022-02-17T09:53:43.7418837+05:30",
"Status": "OK",
"HighLimit": 1000.0,
"LowLimit": 0.0,
"AlarmValue": null
},
"Drivers.Hospitality.Bollards": {
"Value": "1",
"LastUpdatedTime": "2022-02-17T09:53:42.5938448+05:30",
"Status": "OK",
"HighLimit": 1.0,
"LowLimit": 0.0,
"AlarmValue": null
},
"Drivers.Hospitality.FireAlarm": {
"Value": "0",
"LastUpdatedTime": "2022-02-17T09:53:02.1132161+05:30",
"Status": "OK",
"HighLimit": 1.0,
"LowLimit": 0.0,
"AlarmValue": "1"
}
}

我需要反序列化此響應並使用 c# 打印它。我該怎么做?

好吧,由於您從 API 獲得的 JSON 有點奇怪,您需要對“正常”序列化采取一些不同的方法。

更好的方法是使用每個元素和字典獲得 class 的幫助

Class:

public class Drivers
    {
        public string Value { get; set; }
        public DateTime LastUpdatedTime { get; set; }
        public string Status { get; set; }
        public double HighLimit { get; set; }
        public double LowLimit { get; set; }
        public object AlarmValue { get; set; }
    }

然后使用 Newtonsoft 反序列化

var myDeserializedDict= JsonConvert.DeserializeObject<Dictionary<string, Drivers>>(text);

在此之后,您在 Dictionary 中獲得了一個“正常”集合,並且可以根據需要使用它:

        foreach (KeyValuePair<string, Drivers> item in myDeserializedDict) 
        {
            Console.WriteLine(item.Key + " (Status): " + item.Value.Status.ToString());
            Console.WriteLine(item.Key + " (LastUpdated): " + item.Value.LastUpdatedTime.ToString());
[...]
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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