c# - 如何从json创建一个c#对象

标签 c# .net json

我从网络服务得到以下响应:

{
  "data":{
    "foo.hugo.info": {
      "path": "logon.cgi",
      "minVersion": 1,
      "maxVersion": 2
    },
    "foo.Fritz.Task": {
      "path": "Fritz/process.cgi",
      "minVersion": 1,
      "maxVersion": 1
    }
  },
  "success": true
}

反序列化的 json 对象看起来如何?

或者有其他方法获取属性的值吗?

最佳答案

随着 JSON.NET 库非常简单:

public class Root
{
    public Dictionary<string, Data> Data { get; set; }
    public bool Success { get; set; }
}

public class Data
{
    public string Path { get; set; }
    public int MinVersion { get; set; }
    public int MaxVersion { get; set; }
}

然后:

string json = 
@"{
  ""data"":{
    ""foo.hugo.info"": {
      ""path"": ""logon.cgi"",
      ""minVersion"": 1,
      ""maxVersion"": 2
    },
    ""foo.Fritz.Task"": {
      ""path"": ""Fritz/process.cgi"",
      ""minVersion"": 1,
      ""maxVersion"": 1
    }
  },
  ""success"": true
}";
Root root = JsonConvert.DeserializeObject<Root>(json);

在此示例中,我使用了 Dictionary<string, Data>对象对 2 个复杂键(foo.hugo.infofoo.Fritz.Task)建模,因为它们包含不能在 .NET 成员中使用的名称。

关于c# - 如何从json创建一个c#对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514470/

相关文章:

c# - 为什么 CSS 无法解析母版页上相关链接中的 ~ 符号?

json - 如何在 Mac 上的 Chrome 中复制请求有效负载?

c# - 继续不运行 C#

c# - 在 QnA azure 机器人中嵌入链接

c# - Encoding.ASCII 与新的 ASCIIEncoding()

c# - 在 c# 中为 OdbcConnection (System.Data.Odbc) 设置 ConnectionTimeout 不起作用

c# - 与我的开发机器相比,为什么 Uri.EscapeDataString 在我的 CI 服务器上返回不同的结果?

.net - VS2010 ASP.NET MVC 应用程序中的错误?

java - org.springframework.http.converter.HttpMessageNotReadableException : Found strange character

javascript - Infovis 未迭代根节点