これは JSON 文字列 1 です
{"title":["1","2"], "amount":["1","2"]}
これは JSON 文字列 2 です
{"title":"", "amount":""}
フォームに値を入力すると文字列 1 が作成され、入力しないと文字列 2 が作成されます。文字列が形式 1 であるか、タイトルが配列 ["1", "2"] であるか、形式 2 であるかを知りたいです。 title は、解析前のサーブレットのサーバー側の単なる文字列 "" です。そうする方法はありますか?
これは私の以前の質問 です。サーブレットで GSON を使用してこの JSON 文字列を解析するにはどうすればよいですか
これは解決されましたが、ご覧のとおり、ArrayList型のインスタンス変数を持つクラスDataがあるため、この行で解析すると
Data data = gson.fromJson(param, Data.class);
それは例外をスローします
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 24
ArrayList を宣言したので、json 内の配列のみが例外なく解析されることが期待されるため....しかし、フォームに値を入力しないと、json 文字列が作成されません。
{"title":[], "amount":[]}
むしろ、このように作成します
{"title":'', "amount":''}
文字列を値として持つため、解析で例外がスローされます