このJSON構造体をデシリアライズして定義する際に問題が発生しました。私はここでレールを外しているので、これを元の作業位置に戻しました。C#JSON配列を逆シリアル化する
私のJSONのstuctureがある:ここでは
[{
"name": "Name1",
"description": "Description of this process",
"Location": "ANY",
"SubItems": [{
"name": "sub1",
"required": true,
"description": "This is a short description"
}, {
"name": "sub2",
"required": true,
"description": "This is a short description"
}, {
"name": "sub3",
"required": true,
"description": "This is a short description"
}],
"outputs": [{
"name": "out1",
"required": false
}, {
"name": "exit code",
"required": false
}]
}, {
"name": "Name2",
"description": "This is a short description",
"Location": "ANY",
"SubItems": [{
"name": "sub1",
"required": false,
"description": "This is a short description"
}]
}]
は最後に働いていた私のC#JSON形式の定義です。
私は現在、テストのために2つの定義をキャプチャしています。
は、ここで私が述べたように、私は出力の少なくとも最初の3最上位レベルのJSON要素を取得することができ、私のデシリアライズオブジェクト
var Object = JsonConvert.DeserializeObject <List<JsonObject>>(txt);
foreach (JsonObject JsonObject in Object)
{
Console.WriteLine("Name: " + JsonObject.ProcessName);
Console.WriteLine();
Console.WriteLine("Description: " +JsonObject.ProcessDescription);
Console.WriteLine();
}
です。 "SubItems"と "outputs"を取得しようとすると問題が始まります
私は以下のリンク先の構造に従っていますが、それを理解するのは非常に難しいですが、問題。私は単純に多次元配列のJSONオブジェクトを持っています。文字通り一流を持っている、と私は試してみてくださいしようとした2つのサブ階層
...List<List<JsonObject>>Object = JsonConvert.DeserializeObject <List<List<JsonObject>>>(txt);
とJSON定義の3セットと異なる名前で同じの2つのリストを持っていることを試みました。
と階層foreach文を実施したが、その後、私は一番上のJSONの定義にアクセスすることができませんでした、と何も私は必要なもの「サブアイテム」
の実際の要素のために書いていたが、取得することはありませんそれぞれのオブジェクトに、本当に。
How to deserialize a json file with multidimensional array to convert it to object in c#
に関する問題
にそうであるように、あなたはそれがない、そのモデルを飾るために
JsonProperty
を使用することができます配列が多次元であるように見えますが、JsonObjectの内部には配列があります。 –JSONが無効です。 http://jsonlint.com/にアップロードすると、さまざまなエラーが表示されます。問題を[再現する](https://stackoverflow.com/help/mcve)JSONを含めるように質問を編集できますか? – dbc
Raderick、それは多次元アレイの定義です。 – Autonomic