【问题标题】:Mapping json to C# object将 json 映射到 C# 对象
【发布时间】:2014-02-12 21:11:37
【问题描述】:

我有一个像这样生成的 json 文件

[
    {
        "test1": "Pirates", 
        "test2": "Hello World"
    },
    {
        "test1": "Pirates", 
        "test2": "Hello World"
    }
]

从我遇到的一个问题中,我使用了这个链接Json 2 Cshartp Object 并查看了应该制作的课程。然而......我认为它应该是一个数组,但它没有名字?所以我试着像这样制作对象

public class pirateships
{
    public string test1 { get; set; }
    public string test2 { get; set; }
}

然后使用

调用DeserializeObject<T>()
pirateships coords = JsonConvert.DeserializeObject<pirateships>(reader.ReadToEnd());

但它仍然说它无法正确反序列化。我试着让它成为一系列海盗船,但还是失败了。非常感谢您的帮助。

【问题讨论】:

  • 你能发布异常吗?
  • 该类可能应该命名为PirateShip,以便遵循约定。

标签: c# json parsing deserialization


【解决方案1】:

你的 JSON 字符串是一个pirateships 的数组,所以你必须将它反序列化为pirateships[]

pirateships[] coords = JsonConvert.DeserializeObject<pirateships[]>(reader.ReadToEnd());

【讨论】:

  • 请注意,您可以做不同的类型,例如我建议IList&lt;pirateships&gt;(Json.NET 会选择一些合适的具体类型)。
  • 啊哈!我应该意识到这一点。就是这样!非常感谢你们!
猜你喜欢
  • 2019-05-27
  • 2012-04-16
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 2014-11-07
  • 2017-12-24
  • 2013-04-17
  • 1970-01-01
相关资源
最近更新 更多