我从Odoo API得到了以下响应,我想使用Newtonsoft.Json将其反序列化为C#POCO:
{
"jsonrpc": "2.0",
"id": 88252859,
"result": [
{
"id": 61,
"campaign_id": false,
"source_id": false,
"medium_id": false,
"activity_ids": [],
"activity_state": false,
"activity_user_id": false,
"activity_type_id": false,
"activity_type_icon": false,
"activity_date_deadline": false,
"my_activity_date_deadline": false,
"activity_summary": false,
"activity_exception_decoration": false,
"activity_exception_icon": false,
"activity_calendar_event_id": false,
(...)
}
]
}
问题是,Odoo API在响应中用false
替换了null
.例如:属性my_activity_date_deadline
的类型为DateTime?
,但Odoo将其返回为false
.这适用于任何可为空的类型.
我应该如何处理这件事?一个定制的JsonConverter
级?或者,也许我应该捕获并静默类型不匹配导致的异常,以便在无法反序列化属性时使用缺省值?
我在GitHub上找到了一个潜在的解决方案,在OdooModelConverter
中使用方法ConverOdooPropertyToDotNet
:
这感觉有点老生常谈,但我不知道如何写出更优雅的解决方案.