相关疑难解决方法(0)

如何在JSON.NET中实现自定义JsonConverter来反序列化基类对象的列表?

我试图扩展这里给出的JSON.net示例 http://james.newtonking.com/projects/json/help/CustomCreationConverter.html

我有另一个派生自基类/接口的子类

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class Employee : Person
{
    public string Department { get; set; }
    public string JobTitle { get; set; }
}

public class Artist : Person
{
    public string Skill { get; set; }
}

List<Person> people  = new List<Person>
{
    new Employee(),
    new Employee(),
    new Artist(),
};
Run Code Online (Sandbox Code Playgroud)

如何将Json反序列化回List <Person>

[
  {
    "Department": "Department1",
    "JobTitle": "JobTitle1",
    "FirstName": "FirstName1", …
Run Code Online (Sandbox Code Playgroud)

c# json json.net deserialization

292
推荐指数
6
解决办法
25万
查看次数

在Json.net中使用自定义JsonConverter和TypeNameHandling

我有一个类接口类型的类,如:

public class Foo
{
    public IBar Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我还有IBar可以在运行时设置的接口的多个具体实现.其中一些具体类需要自定义JsonConverter进行序列化和反序列化.

利用该TypeNameHandling.Auto选项,非转换器需要IBar类可以完美地序列化和反序列化.另一方面,自定义序列化的类没有$type名称输出,虽然它们按预期序列化,但它们不能反序列化为它们的具体类型.

我试图$type在自定义中自己写出名称元数据JsonConverter; 但是,在反序列化时,转换器将被完全绕过.

是否有解决方法或处理此类情况的正确方法?

c# json.net

11
推荐指数
1
解决办法
6467
查看次数

标签 统计

c# ×2

json.net ×2

deserialization ×1

json ×1