1

我有这个 HashMap< String,Employee>() 对象,我将它转换为 JSONArray 如下

JSONArray jarray = JSONArray.fromObject(myHashMap);

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

下面是用于将 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);
    }
 });
4

1 回答 1

2

您使用了错误的标题:

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

将其更改为:

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

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

作为旁注,“1”不是一个很好的键,如果您可以将其替换为更具描述性的字符串,我建议您这样做。

于 2012-06-28T08:17:59.667 回答