をデシリアライズ私は難しそうのようなデータを返す要求を取得するJSONから返されたデータを表現するための適切な注釈を書いて過ごしています:無名の配列
[{"ProductCode":"0129923083091","Description":"DIESEL ","SalesLitres":6058.7347,"SalesValue":6416.2000},{"ProductCode":"0134039344902","Description":"UNLEADED ","SalesLitres":3489.8111,"SalesValue":3695.7100},
...
]
(ちょうど私が可変数を持っている可能性があることを示す上記の省略記号をこれらの項目の(私はXamarinのプロジェクトのためにMVVMのアプローチを使用していますが、それはここでは関係の上にはありません)私はモデルが
namespace App8.Models
{
public class ReportRow
{
[JsonProperty("ProductCode")]
public string ProductCode { get; set; } = string.Empty;
[JsonProperty("Description")]
public string Description { get; set; } = string.Empty;
[JsonProperty("SalesLitres")]
public double SalesLitres { get; set; } = 0.0;
[JsonProperty("SalesValue")]
public double SalesValue { get; set; } = 0.0;
}
}
属性表現するために、アノテーションを使用しています私のモデルクラスでは)
を返さ210
コンテナ/包含関係を示す別のクラスを説明したいと思います。しかし、返されたコレクションの「ルート」を表すアノテーションにJSON属性が存在しないので、私は立ち往生します。
返されたJSON内で名前が付けられたJSON配列のオブジェクトモデルにJSONをマッピングするのに問題はありません。その場合、C#Listを含む名前付きJSON属性を持つ別のクラスを作成できますが、名前のない配列内の項目のリストを返すJSONの適切なモデルマッピングを提供しようとしています。
私はこれにどのようにアプローチできますか?
JsonConvert.DeserializeObject<List<ReportRow>>(json)
(またはあなたが望む任意の変異体、ここでの鍵はReportRow
のICollection
をデシリアライズするために求めていることがICollection
を実装する独自のクラスであるか、またはのいずれかの可能性:JSONは、使用することをデシリアライズするために
よく作成された最初の質問をお祝いします! – Kroltan