我正在开发一个需要使用JSON的项目。我正在使用Struts2,JSON,jQuery。 我正在向这样的服务器发送httprequest: -
function getBBSJSONData(ths)
{
//ths is nothing but this pointer
var id=ths.id;
var url = 'bbsJsonAction?actionId='+id;
var myAjax = new Ajax.Request(
url,
{
method: 'post',
onComplete: fetchBBSSuccessData
});
}
现在,我将此请求映射到struts.xml中,就像这样
<action name="bbsJsonAction" class="com.x.x.x.BBS_JSON" method="getBBS_json">
<result type="json"/>
</action>
现在在我的动作类中,我正在设置像这样的JSON对象
public String getBBS_json()
{
JSONObject jsonObj =null;
Map map = new HashMap();
map.put("actionId", actionId);
map.put("count", count);
jsonObj = new JSONObject(map);
System.out.println(jsonObj);
return SUCCESS;
}
最后我在客户端检索此JSON结果为responseText,如下所示: -
function fetchBBSSuccessData(Request){
var d = Request.responseText.evalJSON();
alert(d); // this shows [object, object]
alert(d.actionId); //this shows undefined
alert(d.countd); //this shows undefined
alert(d.jsonData.count);this also shows undefined
}
为什么这显示我未定义,如何从这个JSON获取数据,请建议我可能的更改。