JSON.netのDeserializeObjectでプロパティをデシリアライズする際に問題が発生しています。 JSONは適切にフォーマットされており、DeserializeObjectを使用して抽出し、動的プロパティにアクセスできますが、モデルから逆シリアル化すると、プロパティは常にnullになります。Json.NETはリストを逆シリアル化できませんをJSONの配列
私はv10のJSON.netを使用しています。
問題のプロパティは、次のように定義されます
[JsonProperty(PropertyName = "email")]
public List<string> EmailAddresses { get; set; }
JSONは以下の通りです:
"representative" : {
"id" : 16,
"username" : "jb",
"firstName" : "James",
"lastName" : "Bond",
"emailAddress" : "[email protected]"
},
"email" : [ "[email protected]", "[email protected]" ],
"permissionTag" : "Public",
"website" : null,
すると、私は
var restResponse = await client.ExecuteTaskAsync<T>(request, cancelToken);
すなわち、それの型/ wのオブジェクトをデシリアライズするときプロパティはnullです。
私は以下を行うことができますが、なぜ私は、逆シリアル化が失敗しているのか理解したいです。
dynamic jsonResponse = JsonConvert.DeserializeObject(restResponse.Content);
var tagsJArray = jsonResponse.email as JArray;
if (tagsJArray != null)
{
restResponse.Data.EmailAddresses = tagsJArray.ToObject<List<string>>();
}
私はJsonProperty属性が不足していると想定していますが、試したことはありません。誰もがこれについていくつかの光を当てることができますか?
ありがとうございます。
これは、https://stackoverflow.com/a/30147559/1498401とライブの例:https://dotnetfiddle.net/ayZBlL – tinamou
あなたのルートタイプを示す完全な[mcve]にあなたの質問を広げることができますあなたは 'client'をどのように構築しますか?私はあなたの問題[ここ](https://dotnetfiddle.net/xJ2u7F)を再現しようとしましたが、すべてうまくいくようです。 – dbc
電子メールのプロパティまたは他のすべてのプロパティでnullが返ってきていますか? – Arman