如何使用 Json.Net 将 JsonProperty 属性分配给 DLL 内类的属性?

lzl*_*31x 5 c# json datacontract json.net

我在 DLL 中有一个类,它没有用DataContract, JsonProperty等标记。现在我想将该类的实例序列化为 JSON 对象,并缩短 C# 属性名称

例如,类是:

public class Foo
{
    public string SomeLengthyCSharpPropertyName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以在 C# 名称和 json 名称之间创建映射。我不能直接添加如下DataContract, JsonProperty属性。有什么解决方法吗?

[DataContract]
public class Foo
{
    [JsonProperty("s")]
    public string SomeLengthyCSharpPropertyName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我倾向于不创建具有相同但JsonProperty修饰属性的另一个类并将属性复制到新类然后序列化。

Fel*_* Av 0

这绝对感觉像是一种解决方法,但您可能需要考虑一下。如果类不是密封的,您可以继承它,覆盖它的属性(您想要更改的属性),然后装饰它们。