5
私は、HTTP Webリクエストの内容からオブジェクトに逆シリアル化するF#タイプを持っています。私が呼び出しているAPIはodataプロトコルを使用しており、その要求の内容は以下の形式を持ち、キーは@odata.context
です。json.netを使用してF#タイプに逆シリアル化し、@記号を含むjsonプロパティ
type Success = {
[<JsonProperty(PropertyName = "@odata.context")>]
``odata.context``: string;
Value: string; }
odata.context
は、常にこのような状況でnull
で次のように私は戻って私のF#型にコンテンツをデシリアライズするJson.netを使用しています
{
"@odata.context":"OData",
"Value":"token"
}
は、F#の型があります。
私は(F#の型プロパティ名に@記号で)以下の結果がこれを正しくデシリアライズされます(F#の型プロパティ名に@記号なし)let test1 = JsonConvert.DeserializeObject<Success>("{\"@odata.context\": \"odata.context\", \"Value\": \"token\"}"))
NULLで両方試してみました
。
let test2 = JsonConvert.DeserializeObject<Success>("{\"odata.context\": \"odata.context\", \"Value\": \"token\"}"))
これは、プロパティ名の@記号と関係があると思います。
解決策に関するアイディアは素晴らしいものです。
使用しているバージョンは何? https://dotnetfiddle.net/s6W7yJ –
私はF#3.0とjson.net 6.0.4を使用しています。 –
json.netは.netバージョンであり、C#で動作するので、ここでC#の回答を見ましたか? –