HashMap to JSONArray 并在 jquery 中处理响应



我有这个HashMap<字符串,Employee>()对象,我将其转换为JSONArray,如下所示

JSONArray jarray = JSONArray.fromObject(myHashMap);

请注意,映射中的键始终是数字文本,但其数据类型为 String。

下面是用于将 json 字符串设置为响应的代码。

response.setContentType("text/text;charset=utf-8");
response.setHeader("cache-control", "no-cache");
PrintWriter out = response.getWriter();
out.println(jarray.toString());
out.flush();

我得到的 json 字符串是

[{"1":{"empAge":32,"empEmail":"name@mail.com","empId":1,"empName":"myname","empTel":"33445"}]

如何在键值为 1 的地图中获取 empName 的值?

$.ajax({
type: "POST",
url: "/MyApp/TestAction.do",
dataType :"json",
success: function(response){
     alert(response.1[0].empName);// I get java script error in this statement
    },
    error: function(e){
        alert('Error: ' + e);
    }
 });

您使用了错误的标头:

 response.setContentType("text/text;charset=utf-8");

将其更改为:

response.setContentType("application/json;charset=utf-8");
目前,您将其作为

字符串获取,因此不能将其用作对象,一旦更改标头,您将将其作为 JSON 对象获取并能够使用它。

作为旁注,"1"不是一个很好的键,如果你能把它换成一个更具描述性的字符串,我建议你这样做。

最新更新