问题描述
public class providerData
{
String rowId { get; set; }
}
public class providerPagedData
{
public int total { get; set; }
public int totalPages { get; set; }
public List<providerData> items { get; set; }
}
public class ProviderTest
{
String converted = "{\"total\":5,\"totalPages\":0,\"items\":[{\"rowId\":\"#10479\"}]}";
public ProviderTest()
{
providerPagedData providers = new providerPagedData();
try
{
providerPagedData p = JsonSerializer.Deserialize <providerPagedData>(converted,new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true,}
);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Result返回成员“ total”和totalPages的正确值,以及“ items”的正确数目,但是第一个元素的“ rowId”始终为null。 无法弄清楚我在做什么错,将不胜感激
解决方法
rowId
未被反序列化,因为它不是public
。来自docs:
System.Text.Json
仅适用于公共财产。自订 转换器可以提供此功能。
更改为该设置应允许rowId
正确反序列化:
public class providerData
{
public String rowId { get; set; }
}