System.Text.Json.JsonSerializer无法反序列化成员

问题描述

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; }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...