传值各方面都成功了。主要是js在分析json数据时总是说没有数据,高手们先大概看一下程序:【action:】 private StringBuilder date=new StringBuilder ();
private String jsondate; 【....省略了get set方法】 public String checkMoney() {
date.append("{\"money\":");
date.append("10");
date.append(",\"name\":");
date.append("admin");
date.append("}");
setJsondate(date.toString());
return Action.SUCCESS;
}【struts.xml:】
<constant name="struts.i18n.encoding" value="UTF-8"/>
<package name="checkmoney" namespace="/checkmoney" extends="json-default">
<action name="checkMoney" class="checkMoneyAction" method="checkMoney">
<result type="json">
<param name="root">jsondate</param>
</result>
</action>
</package>【到了页面】
$.post("<%=path%>/example/checkMoney.shtml",
{'no':getno},
function(sendmoneyd){
alert("jsondate"+jsondate);
var animal2=eval('(' + jsondate + ')'); alert("animal2: "+animal2); 【注】这个animal2可以打印出来: {"money":10,"name":admin}
【注】下面全部是:undefined alert("animal2.money: "+animal2.money);
alert("animal2.name: "+animal2.name);
alert("animal2.money: "+animal2[0].money);
alert("animal2.name: "+animal2[1].name);
});
【求解】 1,我要怎么样写才能取得单独money或者name的值,
2,我的程序这样配置好不,请高手们给点意见。
private String jsondate; 【....省略了get set方法】 public String checkMoney() {
date.append("{\"money\":");
date.append("10");
date.append(",\"name\":");
date.append("admin");
date.append("}");
setJsondate(date.toString());
return Action.SUCCESS;
}【struts.xml:】
<constant name="struts.i18n.encoding" value="UTF-8"/>
<package name="checkmoney" namespace="/checkmoney" extends="json-default">
<action name="checkMoney" class="checkMoneyAction" method="checkMoney">
<result type="json">
<param name="root">jsondate</param>
</result>
</action>
</package>【到了页面】
$.post("<%=path%>/example/checkMoney.shtml",
{'no':getno},
function(sendmoneyd){
alert("jsondate"+jsondate);
var animal2=eval('(' + jsondate + ')'); alert("animal2: "+animal2); 【注】这个animal2可以打印出来: {"money":10,"name":admin}
【注】下面全部是:undefined alert("animal2.money: "+animal2.money);
alert("animal2.name: "+animal2.name);
alert("animal2.money: "+animal2[0].money);
alert("animal2.name: "+animal2[1].name);
});
【求解】 1,我要怎么样写才能取得单独money或者name的值,
2,我的程序这样配置好不,请高手们给点意见。
一般我会这么写$.post('xxx.x',{xxx:xxx},function(data){alert(eval(data).xxx)});
data是外部传给这个函数的,你这里根本没有定义jsondate
这里写错了 是
function(jsondate){jsondate已经定义了
造成误会了,不好意思。
引用下这个包就Ok了 不用自己弄json
struts.xml:
<package name="ajax" extends="json-default">
<action name="queryGoldPrice" class="com.bosent.cmbcgold.front.action.GoldPriceAction" method="query">
<result name="success" type="json"></result>
</action>
</package>
你的方法我会试的,但是我还是想知道,怎么我的js在解析json的时候会失败。
结果是一样的,还是取不到值。
response.setContentType("application/json");
?