だから私は辞書をJSONオブジェクトに変換しようとしています.問題は、生成されたJSONが有効でないことです.マップのリストをJSONに変換しようとすると問題が発生します.
final List<Map<String,Object>> sessions = new ArrayList<Map<String,Object>>();
Map<String,Object> sessionDict = null;
for (String session : SessionsList) {
sessionDict = new HashMap<String,Object>();
sessionDict.put("SessionCode", session);
sessions.add(sessionDict);
}
Map<String,Object> map = new HashMap<String,Object>(){
private static final long serialVersionUID = 1L;
{
put("EmailAnswer", "Y");
put("IsSendSupervisor", isSendSup);
put("IsSendTC", isSendTC);
put("ContentType", "MS");
put("ApprovalResponse", "");
put("EmpId", empId);
put("IsSendEmployee", isSendEmp);
put("MyScheduleRecords", sessions);
}};
JSONObject json = new JSONObject(map);
生成されるものは次のとおりです。
{
"EmpId":"100-02",
"IsSendEmployee":"Y",
"ApprovalResponse":"",
"EmailAnswer":"Y",
"IsSendTC":"Y",
"MyScheduleRecords":"[
{
SessionCode=371
},
{
SessionCode=372
}
]",
"ContentType":"MS",
"IsSendSupervisor":"N"
}
しかし、これを変換する方法は次のとおりです。
[
{
"EmailAnswer": "Y",
"IsSendSupervisor": "N",
"IsSendTC": "N",
"ContentType": "MS",
"ApprovalResponse": "",
"EmpId": "100-01",
"IsSendEmployee": "Y",
"MyScheduleRecords": [
{
"SessionCode": "152"
},
{
"SessionCode": "500"
}
]
}
]
正しく変換されない理由を知っている人はいますか?