c# - ServiceStack JsonSerializer 不序列化公共(public)成员

标签 c# json serialization servicestack jsonserializer

我正在尝试使用 ServiceStack.Redis,我注意到当我存储一个具有公共(public)成员的对象并稍后尝试获取它时,我得到了 null。

我检查并发现 ServiceStack.Redis 正在使用 ServiceStack.JsonSerializer,所以我尝试创建一个测试用例,我注意到 ServiceStack.JsonSerializer 没有序列化公共(public)成员:

        public class ClassA
        {
            public string Id;

            public string Id2 { get; set; }
        }


        static void Main(string[] args)
        {
            ClassA t = new ClassA();
            t.Id = Guid.NewGuid().ToString("n");
            t.Id2 = Guid.NewGuid().ToString("n");

            string a = JsonSerializer.SerializeToString<ClassA>(t);

            ClassA t2 = JsonSerializer.DeserializeFromString<ClassA>(a);

            Console.WriteLine("id " + t2.Id);
            Console.WriteLine("id2 " + t2.Id2);

            Console.ReadLine();
        }

如您所见(如果您测试该代码),Id(公共(public)成员)为空,而 Id2(公共(public)属性)与我们输入的字符串相同。

那么我做错了什么?

谢谢!

最佳答案

您可以告诉 JsonSerializer 包含公共(public)字段。

ServiceStack.Text.JsConfig.IncludePublicFields = true;

关于c# - ServiceStack JsonSerializer 不序列化公共(public)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315543/

相关文章:

c# - 我们如何使用 EF 在 ASP.Net MVC 应用程序中创建 3 层架构?

c# - 在哪里可以找到翻译的 Linq to Entity 查询到 Sql

javascript - 如何使用 jQuery 搜索嵌套的 JSON 数组?

c# - DataContractJsonSerializer:序列化具有接口(interface)属性的类

android - 在另一个 Intent 中发送 Intent

c# - 依赖注入(inject)无法解析在 Azure 中运行的 .NET Core Function App 中的类型服务

c# - 使用C#的html解析问题

javascript - 从 JSON 获取数据

c++ - 从类到 C++ 对象的 JSON 字符串

c# - 异常 : Maximum number of items that can be serialized or deserialized in an object graph is '65536'