【发布时间】:2020-03-26 10:04:43
【问题描述】:
我的项目中有一个类需要针对两个不同的用例进行序列化。 因为我不能在属性上添加两个不同的属性,所以我想序列化类的对象 一次使用 [JsonProperty("attributname")] 声明,一次使用它自己的属性名称。
例如:
public class Contact
{
[JsonProperty("name")]
public string Lastname { get; set; }
}
public class Program
{
public void SerializeByJsonPropertyName()
{
var contact = new Contact()
{
Lastname = "Harber"
}
var requestJson = JsonConvert.SerializeObject(contact);
// Serialized Object requestJson:
// {
// "name" = "Harber"
// }
}
public void SerializeByPropertyName()
{
var contact = new Contact()
{
Lastname = "Harber"
}
var requestJson = JsonConvert.SerializeObject(contact /*, ? Setting ?*/);
// Serialized Object requestJson:
// {
// "Lastname" = "Harber"
// }
}
}
第一个场景完全可以正常工作,但对于第二个场景,我找不到任何解决方案。除了创建两个类或在我的类中复制属性.. Newtonsofts JsonConverter 中是否有任何设置可以做到这一点?
感谢您的帮助!
【问题讨论】:
-
在这里你可以找到一个可能的解决方案stackoverflow.com/questions/20622492/…
-
完美!非常感谢!
标签: c# serialization json.net