繁体   English   中英

JSON有效,但是代码返回null

[英]JSON is valid, but result in code returns null

我有这个简单的JSON

{
    "persons": [{
        "firstname": "Brad",
        "lastname": "Pitt"
    }, {
        "firstname": "George",
        "lastname": "Clooney"
    }, {
        "firstname": "Matt",
        "lastname": "Damon"
    }]
}

这是我在C#中的类:

public class PersonObject
{
    [JsonProperty(PropertyName = "persons")]
    public List<Person> Persons { get; set; }
}

public class Person
{
    [JsonProperty(PropertyName = "firstname")]
    public string Firstname { get; set; }

    [JsonProperty(PropertyName = "lastname")]
    public string Lastname { get; set; }
}

由于某种原因,它总是返回null ...我真的看不出这是怎么回事...使用JsonConvert.DeserializeObject没什么问题,因为它适用于其他JSON字符串。

_PersonsList = JsonConvert.DeserializeObject<List<PersonObject>>(data);

您的数据不包含List<PersonObject> -它包含单个 PersonObject ,而后者又包含List<Person> 所以这很好用:

var json = File.ReadAllText("test.json");
var obj = JsonConvert.DeserializeObject<PersonObject>(json);
Console.WriteLine(obj.Persons[0].Firstname); // Prints Brad

使用当前代码,您不应该获取空引用-您应该获取异常,如下所示:

未处理的异常:Newtonsoft.Json.JsonSerializationException:无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型'System.Collections.Generic.List`1 [PersonObject]',因为该类型需要JSON数组(例如[1,2,3])正确反序列化。

如果你看到一个空引用,那说明你的地方吞咽异常,这是值得单独固定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM