使用
System.Text.Json
,我有一个客户端应用程序,它仅从我的 API 上的类中读取属性。我的 API,首先调用外部 API 来获取一些数据,然后将其返回到我的客户端应用程序。
我想要完成的是在我的 API 中使用 1 个类,它将使用其命名概念从外部源读取/解析 json,而我的 API 会输出具有不同属性名称的相同类。
例如:
public class Event {
public int Id { get; set; }
public string Name { get; set; }
}
外部 API 返回
{ "event_id": 1, "ourName" : "Test" }
,我的 API 应以 { "id" : 1, "name" : "Test }
返回给我的客户端
我知道我可以创建一个单独的模型,然后手动(或使用
AutoMapper
)映射字段。
我正在寻找一种方法,也许使用某种
Attribute
,我可以定义用于序列化的名称和用于反序列化的另一个名称。像这样,序列化将仅使用属性的名称,但 ddserialization 将使用属性。
public class Event {
[JsonDeserialize("event_id")]
public int Id { get; set; }
[JsonDeserialize("ourName")]
public string Name { get; set; }
}
我确信我不是第一个想要这个的人,但我的搜索技巧缺乏,因为我没有找到任何东西。也许我没有搜索正确的关键字。
谢谢!
您尝试过使用 [JsonPropertyName("ExternalJsonPropertyName")] 吗?
在这里,如果您还没有看到过,您会找到更多相关信息。