代码之家  ›  专栏  ›  技术社区  ›  Yair Halberstadt

Json中一种类型的自定义序列化程序。网

  •  0
  • Yair Halberstadt  · 技术社区  · 7 年前

    在Json中有什么方法吗。Net命令它像往常一样序列化大多数类型,但要使用我在它发现类型为x的对象时提供的自定义序列化程序?

    本质上,这里的想法是,如果您想在Json中对类型使用自定义序列化,请使用AFAIK。Net中,您必须指定如何在类型内完成此操作,例如通过实现ISerializable或使用属性。但是,如果我没有访问该类型的权限,则无法修改该类型的序列化。

    相反,我想知道是否可以将该信息注入jsonConverter,以便它知道如何对该类型使用自定义序列化。

    假设我想做这样的事情:

    class A 
    {
        B B {get; set;}
    }
    
    class B
    {
    }
    
    BSerializer : ISerilalizer<B>
    {
         public string Serialize(B obj) => "This is a B"
    }
    
    ...
    
    JsonConverter.SerializeObject(new A{B = new B()}, new BSerializer()) 
    

    这种序列化的结果是

    {
        "B" : "This is a B"
    }
    

    显然这个接口不存在,但是我可以使用现有的API Json做一些类似的事情吗。网络提供了什么?

    0 回复  |  直到 7 年前