前提・実現したいこと
C#でJSONのDTOを作成しているのですが、
「list」部分の配列で且つ入れ子になっている場合の書き方がわからず、教えてください。
現在の書き方だと、メインクラスの「List = new List」部分でエラーとなってしまいます。
エラー:配列を指定するには配列のサイズまたは初期化子を指定する必要があります。
該当のソースコード
該当のJSONは以下です。listの部分は送信物によって行数が変動します。
{ "request": { "transaction": { "id" : "10", "server" : "10" }, "list" : [ { "group" : "1", "data" : "XXXXX" } ,{ "group" : "1", "data" : "XXXXX" } ] } }
C#
1 メインクラス 2 public class Main 3 { 4 /// コンストラクタ 5 public Main() 6 { 7 // リクエストのインスタンスを生成する. 8 this.request = new Request 9 { 10 Transaction = new Transaction(), 11 List = new List[]() 12 }; 13 } 14 }
C#
1 Requestクラス 2 public class Request 3 { 4 5 public Transaction Transaction { get; set; } 6 7 public List[] List { get; set; } 8 }
C#
1 Listクラス 2 public class List 3 { 4 public string Group { get; set; } 5 public string Data { get; set; } 6 }
配列を初期化する際には配列の大きさを与えるか、要素の初期値を与える必要があります。
int[] list = new int[];
int[] list = new int[0];
上は NG で下は OK です。
メインクラスで、
List = new List[0]()
とやってみたのですが、メソッド名が必要ですエラーになってしまいました。
カッコがついてるからじゃないですか?
ありがとうございます!!初歩的な誤りでした。
List = new List[0]で指定したのはよかったのですが、Listの数が時によって違うので<リスト型>にしたいです。。重ねて申し訳ありませんが、方法を教えてください。
配列ではなく List<T> を使ってみたらどうでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.list-1?view=netframework-4.8
回答3件
あなたの回答
tips
プレビュー