【问题标题】:Desearalising list in JSON responseJSON 响应中的去序列化列表
【发布时间】:2019-11-13 11:02:57
【问题描述】:

我正在使用 C# JavaScriptSerializer 对象成功反序列化由类或类数组组成的 JSON 响应。

我应该将这样的列表响应反序列化到什么类型、类或变量中?

{
   "symbols": {
       "AED":"United Arab Emirates Dirham",
       "AFN":"Afghan Afghani",
       "ALL":"Albanian Lek",
       "AMD":"Armenian Dram"
   }
}

【问题讨论】:

  • 试试你的朋友Online Json to Class Converter
  • 你可以创建两个类然后反序列化这个。
  • @Gary K,别忘了将帮助你的答案标记为正确,谢谢
  • 我很愚蠢,但我看不到这样做的方法

标签: c# json list


【解决方案1】:

一个简单的Dictionary<string, string> 会很好,但如果你希望它成为一个类,你将需要多一层嵌套:

json

"rapidSymbols":{
   "symbols":{
     "AED":"United Arab Emirates Dirham",
     "AFN":"Afghan Afghani",
     "ALL":"Albanian Lek",
     "AMD":"Armenian Dram",
     ...
     }
}

代码

class RapidSymbols
{
    public IDictionary<string, string> Symbols {get; set; }
}

【讨论】:

  • 但是需要这个类 class RapidSymbols{ public IDictionary Symbols { get;放; } }
【解决方案2】:

你可以反序列化到这个类

public class Symbols
{
    public string AED { get; set; }
    public string AFN { get; set; }
    public string ALL { get; set; }
    public string AMD { get; set; }
}

public class RootObject
{
    public Symbols symbols { get; set; }
}

【讨论】:

    【解决方案3】:

    您当前的 JSON 只是嵌套在另一个属性中的一个类。如果您将 JSON 更改为以下内容,则可以改用 Dictionary,它将是动态的。

    {
       "symbols":[
          {
             "AED":"United Arab Emirates Dirham"
          },
          {
             "AFN":"Afghan Afghani"
          },
          {
             "ALL":"Albanian Lek"
          },
          {
             "AMD":"Armenian Dram"
          }
       ]
    }
    
    class RapidSymbols
    {
        public IDictionary<string, string> Symbols {get; set; }
    }
    

    【讨论】:

    • 但我不知道我要返回多少“符号”,所以它需要是动态的。抱歉,我应该说清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多