JSON TO C#反序列化[关闭]

Posted

技术标签:

【中文标题】JSON TO C#反序列化[关闭]【英文标题】:JSON TO C# Deserializing [closed] 【发布时间】:2021-01-20 07:23:31 【问题描述】:

有人可以帮我将这个 api https://www.freeforexapi.com/api/live?pairs=EURUSD,GBPUSD 中的 JSON 反序列化为 C# 对象吗?我尝试了很多我在网上找到的方法和示例,似乎都没有工作

【问题讨论】:

你有什么问题?请显示详细信息,例如生成的 JSON 示例和您尝试反序列化的 C# 类。 请列出您尝试过的示例,以及当它们不起作用时遇到的错误。 这是我得到的 JSON:"rates":"EURUSD":"rate":1.175883,"timestamp":1601901665,"code":200 我想要反序列化速率、时间戳和代码 【参考方案1】:

这里的 rate 是 Map,所以 Response C# 类看起来像这样:

public class Response

    public Dictionary<string, Rate> Ratesget;set;
    public int Code get;set; 


public class Rate

    public double Rate  get; set; 
    public long TimeStamp  get; set; 


反序列化:

var obj = JsonConvert.DeserializeObject<Response>(jsonObject);

【讨论】:

【参考方案2】:

例如,使用 newtonsoft json 创建响应类

public class EURUSD    
    public double rate  get; set;  
    public int timestamp  get; set;  


public class GBPUSD    
    public double rate  get; set;  
    public int timestamp  get; set;  


public class Rates    
    public EURUSD EURUSD  get; set;  
    public GBPUSD GBPUSD  get; set;  


public class Root    
    public Rates rates  get; set;  
    public int code  get; set;  

然后反序列化响应,比如

Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); 

您可以使用 json2csharp 网站轻松生成这样的类^

【讨论】:

以上是关于JSON TO C#反序列化[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无法将 JSON 数组反序列化为 C# 对象 [关闭]

使用C# json 二维数组 反序列化

c# 多个json字符串反序列化

C# JSON 反序列化

使用 C# 反序列化 JSON

在 C# 中从 JSON 反序列化数组