[英]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.