java json类型的String在js中接受直接称json了?

struts2

class person{
String name;
String age;
....set get
}

/////////////
action
public String op (){
private String orgTree;
....set get....

person ps = new person();
ps.setname="dd";
ps.setage ="12";

JSONObject json = JSONObject.fromObject(ps);
orgTree = json.toString();
return "initsuccess"
}
/////////////
js

function getinfo (){
var pers = <%=request.getAttribute("orgTree")%>;
window.alert(pers.name);

}
结果:dd

// 得到的 pers 怎么就是 json了 不是String了?

<%=request.getAttribute("orgTree")%> 是在服务器端输出字符串的,传输到浏览器后就没有双引号了,你右击查看下 变成了json字面量

(1)直接用request.getAttribute()的结果:
var str={name:'ok',age:'21'}
直接是定义js中的json对象的语法了;
(2)ajax调用后返回的json串,已经是js中的字符串了(这个应该决定于ajax请求响应机制,也有一些框架提供返回json类型的),所以要转换为json对像就使用eval了