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 に答える