【发布时间】:2019-08-27 09:27:57
【问题描述】:
我有一个调用 REST-Api 的后端服务。然后将该 API 的结果反序列化到我的实体中:
public class Item {
[JsonProperty("pkID")]
public int Id {get;set;}
}
JsonConvert.DeserializeObject<Item>(responseString);
这很好用。但我也想将结果作为 JSON 字符串返回,以便我可以从前端使用它。现在,当使用JsonConvert.SerializeObject(item) 序列化我的“项目”类型的对象时,我想返回类似
{ Id: 1 }
在序列化时它还使用 JsonProperty 并返回
{ pkID: 1 }
改为。
如何告诉序列化程序在序列化时忽略 JsonProperty,但在反序列化时使用它?
我不是在寻找是否应该序列化属性的方法,而是在寻找是否应该使用 propertyName 或序列化时 JsonProperty 中的名称。
【问题讨论】:
-
在您链接的问题中,根本没有序列化该属性。我正在寻求一种方法来保留 PropertyName
-
@OleAlbers 有一个指向
IContractResolver的指针,它可以帮助你做你正在做的这些奇怪的事情 -
@vasily.sib 我按照描述和 AFAIK(我可能在这里错了)看起来这是关于序列化或不序列化属性,而不是属性应该具有的名称。
-
还有 2 件事要尝试:1 - 让您的前端使用
pkID而不是Id。 2 - 为您的前端创建另一个Item类。
标签: c# json serialization deserialization