【发布时间】:2017-11-21 18:44:53
【问题描述】:
我从如下所示的 Web API 接收 JSON 数据:
[
{
"id": 1
"error_message": "An error has occurred!"
}
]
我将此数据反序列化为以下类型的对象:
public class ErrorDetails
{
public int Id { get; set; }
[JsonProperty("error_message")]
public string ErrorMessage { get; set; }
}
稍后在我的应用程序中,我想再次将 ErrorDetails 对象序列化为 JSON,但使用属性名称 ErrorMessage 而不是 error_message。所以结果应该是这样的:
[
{
"Id": 1
"ErrorMessage": "An error has occurred!"
}
]
有没有一种简单的方法可以使用 Json.Net 完成此任务?也许使用自定义解析器和一些属性,例如:
public class ErrorDetails
{
public int Id { get; set; }
[SerializeAs("ErrorMessage")]
[DeserializeAs("error_message")]
public string ErrorMessage { get; set; }
}
但是当我在序列化或反序列化时,解析器并没有告诉我。
【问题讨论】:
-
你需要两个类。每个类都是 json 生成或读取的契约
-
您可以在反序列化 JSON 时使用
SnakeCaseNamingStrategy。请参阅here 了解如何执行此操作的示例。 -
这看起来很有趣。请将此添加为答案。
标签: c# json serialization