JQuery如何处理从servlet中传回的对象

学生:请教
我在servlet中传回这有一段数据:
out.print("{uname:"+users.getUname()+",pwd:"+users.getPwd()+",email:"+users.getEmail()+",rename:"+users.getRealityName()+",phone:"+users.getPhone()+",remark:"+users.getRemark()+"}");

在页面接收到数据后,我这样处理
回调函数中
[color=darkblue]function/color{
[color=darkblue]var[/color] dataobj=data;
请问我要如何才能分别取到传回的uname,pwd,email等属性的值啊?([i][color=indigo][b]最好能说说原理,谢谢[/b][/color][/i])

}

8个回答

JSON-lib首页上有一段话:
Json-lib requires (at least) the following dependencies in your classpath:

jakarta commons-lang 2.3
jakarta commons-beanutils 1.7.0
jakarta commons-collections 3.2
jakarta commons-logging 1.1.1
ezmorph 1.0.4

你必须把上面的这些jar包都加入才可以。

如果用$.getJSON()的话,你的JSON封装的不对,需要返回{"uname":"uname_value","pwd":"pwd_value"}这样的形式,然后直接data.xxx就可以得到

如果用$.getJSON()
你的回调函数的data已经转成js对象了,直接data.uname就行了,
如果用的$.ajax();需要配置dataType为json,如:
$.ajax({
type: "GET",
url: "test.jsp",
dataType: "json",
success:function(data){ }
});

你用$.ajax({dataType:'json'....})也可以直接在回调里面data.xxx得到.
关于原理,就是使用JavaScript里的eval函数

你传回的是个字符串,在页面上得到的就是这个字符串,要想解析它只能自己写正则。
同意楼上的说法,索性在后台把它拼接成JSON格式的字符串,然后在前台转换方便许多。

写个简单例子参考:
[code="js"]
$("#submitButton").click(function(){
$.get("myservlet/getdata",//servlet URL
{username:$( "#username").val()},//表单中的值
function(data,statusText){//相应函数
var jsonvars=data.mydata;//返回JSON数据
for(var i=0;i { $("#dataDiv").append"

"+jsonvars[i].name+jsonvars [i].age+"
"); }
},"json");
});
});
[/code]
Servlet方法:
[code="java"]
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=utf-8");

    JSONObject json = new JSONObject();
    JSONArray array = new JSONArray();
    JSONObject member = null;
    for (int i = 0; i < 5; i++)
    {
        member = new JSONObject();
        member.put("name", "xiaohua");
        member.put("age", 15);
        array.add(member);
    }

    json.put("mydata", array);
    PrintWriter pw = response.getWriter();
    pw.print(json.toString());
    pw.close();
}

}
[/code]
你照这个改一下就可以了。

不客气,分给我就行了 :D

需要json-lib-2.3-jdk15.jar包。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐