5
我有一個F#類型,我從HTTP Web請求的內容反序列化爲對象。我所調用的API使用odata協議,該請求的內容具有以下格式,包含密鑰@odata.context
。使用json.net和包含@符號的json屬性反序列化爲F#類型
{
"@odata.context":"OData",
"Value":"token"
}
我使用Json.net的內容反序列化回我的F#類型,F#類型如下
type Success = {
[<JsonProperty(PropertyName = "@odata.context")>]
``odata.context``: string;
Value: string; }
odata.context
始終是在這種情況下null
。
我曾嘗試以下兩個(與在F#類型屬性名稱的@符號),結果是NULL
let test1 = JsonConvert.DeserializeObject<Success>("{\"@odata.context\": \"odata.context\", \"Value\": \"token\"}"))
(不含在F#類型屬性名稱的@符號)這被正確地反序列化。
let test2 = JsonConvert.DeserializeObject<Success>("{\"odata.context\": \"odata.context\", \"Value\": \"token\"}"))
我相信這可能與屬性名稱中的@符號有關。
解決方案的任何想法都會很棒。
什麼版本您使用的? https://dotnetfiddle.net/s6W7yJ –
我正在使用F#3.0和json.net 6.0.4 –
你看過C#的答案在SO這裏,因爲json.net是一個.net版本,並將使用C#? –