我有一个调用 REST-Api 的后端服务。然后该 API 的结果被反序列化到我的实体中:public class Item { [JsonProperty("pkID")] public int Id {get;set;}}JsonConvert.DeserializeObject<Item>(responseString);这很好用。但我还想以 JSON 字符串的形式返回结果,以便我可以从前端使用它。现在使用序列化我的“Item”类型的对象时,JsonConvert.SerializeObject(item)我想返回类似的内容{ Id: 1 }相反,在序列化时,它还使用 JsonProperty 并返回{ pkID: 1 }反而。如何告诉序列化器在序列化时忽略 JsonProperty,但在反序列化时使用它?我不是在寻找属性是否应该序列化的方法,而是在序列化时是否应该使用 propertyName 或 JsonProperty 中的名称。
2 回答
慕慕森
TA贡献1856条经验 获得超17个赞
您可以使用指向“好”属性的仅设置属性。
public class Item
{
public int Id { get; set; }
[JsonProperty("pkID")]
public int BackwardCompatibleId { set => Id = value; }
}
// test
var x = new Item { Id = 88 };
var json = JsonConvert.SerializeObject(x); // {"Id":88}
var clone = JsonConvert.DeserializeObject<Item>("{\"pkId\":99}");
- 2 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消