微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JSON DeserializeObject 显示 0

如何解决JSON DeserializeObject 显示 0

你好,我在 c#(xamarin) 中遇到了一些问题 我遵循了有关分相的 XXX 教程。 我只需要价值。 有人能告诉我我是如何解决这个问题的吗?

我的 Json:

{
   "Header":{
      "Version":5,"Device":"80","Timestamp":1610066048
   },"Data":{
      "Inputs":[
         {
            "Number":2,"AD":"A","Value":{
               "Value":62.0,"Unit":"1"
            }
         }
      ]
   },"Status":"OK","Status code":0
}

C#

var client = new WebClient();
            string json = client.DownloadString("https://XXXXXXX.com/heizung.PHP");
             Value1 news = JsonConvert.DeserializeObject<Value1>(json);

            Ausgabe.Text = news.Value;

我的班级

  public class Header
    {
        public int Version { get; set; }
        public string Device { get; set; }
        public int Timestamp { get; set; }
    }

    public class Value1
    {
        public string Value { get; set; }
        public string Unit { get; set; }
    }

    public class Input
    {
        public int Number { get; set; }
        public string AD { get; set; }
        public Value1 Value { get; set; }
        
    }

    public class Data
    {
        public List<Input> Inputs { get; set; }
    }

    public class Root
    {
        public Header Header { get; set; }
        public Data Data { get; set; }
        public string Status { get; set; }
        public int Statuscode { get; set; }
    }

谢谢,我希望你们都有美好的一天。

解决方法

反序列化根对象并跟踪值:

Root news = JsonConvert.DeserializeObject<Root>(json);

Ausgabe.Text = news.Data.Inputs[0].Value.Value;
,

您应该将 json 反序列化为 Root 类:

var root = JsonConvert.DeserializeObject<Root>(json);

根对象反序列化后,您可以选择所需的任何值。例如:

var values = root.Data.Inputs.Select(i => i.Value.Value); // string sequence

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。