0
にJSONへのHTTPサーブレットリクエスト私はモデルクラスを持っている...変換私の定義されたオブジェクト
public class Incident implements Serializable {
private Long id;
private Integer refNo;
private String type;
private Double lossAmt;
private Date incidentDate;
private Date incidentTime;
private Date reportingDate;
}
FTLのような...
<form action="saveIncident.do" method="POST" >
<input type="text" name="type" value="A">
<input type="text" name="refNo" value="546">
<input type="text" name="lossAmt" value="45000">
<input type="text" name="incidentDate" value="10/05/2017">
<input type="text" name="reportingDate" value="18/05/2017">
<input type="submit" value="Save">
</form>
私はHttpServletRequest request
Map<String, String[]> map = request.getParameterMap();
String formData = new Gson().toJson(map);
上記のコードは、formData
という値{"type":["A"],"lossAmt":["45000"],"incidentDate":["10/05/2017"],"reportingDate":["18/05/2017"],"refNo":[""]}
として返されます。それから私は私が..
formData = formData.replaceAll("[\\[ \\]]", ""); // {"type":"A","lossAmt":"45000" ....
を使用してアレイシンボル[ & ]
のでReplaceAllときに正常に動作し、このスローcom.google.gson.JsonSyntaxException
Gson gson = new GsonBuilder().setDateFormat("dd/MM/yyyy").create();
Incident incident = gson.fromJson(formData, Incident.class);
...と呼ばれるしかし。したがって、配列記号を置き換えずに
Incident
オブジェクトにどのように変換できますか?問題は、あなたがパラメータを解析する時点で、すでにある私見
複数の入力がある場合、 '{" type ":[" A "、" B "]、...}のように同じ名前が付いてくるでしょうか? –
@ M.A.Khomeni次に、複数の "id"要素をインシデントタイプにマップする計画はどうですか? jsonをオブジェクトにマップする場合、json構造はオブジェクト型の構造を表す必要があります – gusto2