我從一個Web API,它看起來像這樣接收JSON數據:使用不同的名稱和序列化與Json.Net
[
{
"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'](http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Serialization_SnakeCaseNamingStrategy.htm)。有關如何執行此操作的示例,請參閱[這裏](https://stackoverflow.com/a/39090062/3744182)。 – dbc
這似乎很有趣。添加此作爲答案請。 – Aetherix