这个是界面。<script type="text/javascript">
$(function(){
$("#country").change(function(){
var country = $(this).val();
$.ajax({
url:"/demo",
type:"POST",
dataType:'json',
data:{"country":country},
success:function(data){
alert("data长度: "+$(data).size());
                    //alert(data);
//$("#city").append("<option>"+"沈阳"+"</option>");
},
error:function(){
alert("数据传输失败!");
}
});
});
});
</script>这个是后台程序。 String country = request.getParameter("country");
response.setContentType("text;charset=UTF-8");
PrintWriter out = response.getWriter();
JSONObject data = new JSONObject();
data.put("0", "沈阳");
data.put("1", "天津");
data.put("2", "深圳");
data.put("3", "大连");
// String data2 = data.toString();
// JSONObject data = JSONObject.fromObject(data2);
out.print(data);
System.out.println(data.get("0")+" 长度111: "+data.size());
System.out.println("000 "+data);
out.flush();
out.close();
现在界面alert(data);返回的是[object Object],长度为1.
但是程序的后台返回的数据都正确,长度也为4.
求帮助界面怎么能返回和后台相同的数据.不知道哪里错了.javajavawebajax

解决方案 »

  1.   

    var d = $.toJSON(data);
    alert(d);
      

  2.   

    $(data)这是怎么回事,data是字符串,不能这么用吧
      

  3.   

    我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
      

  4.   

    我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
    ajax 返回的是字符串,就算是json,你这么用也不对 ,
      

  5.   

    你可以在success:function(data){内部第一行输入debugger;实现一个断点。IE以外的我不太清楚,但是IE的可以在这样断的。然后你直接对data右键,添加到监视里面就可以知道这个东东的数据和数据类型了。记得在运行这段JS之前先按F12,然后启动调试模式
      

  6.   

    $.each(目标,回调函数(索引或key,当前值){})用这个遍历
      

  7.   

    我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
    ajax 返回的是字符串,就算是json,你这么用也不对 ,
    怎么不是json类型了?我后台写的也是json啊。
      

  8.   

    alert(d);这排没有输出哦,function进来了。求解啊
      

  9.   

    我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
    ajax 返回的是字符串,就算是json,你这么用也不对 ,
    怎么不是json类型了?我后台写的也是json啊。
    ajax 返回来的就是个字符串,用eval(date)转一下。
      

  10.   

    success:function(date){
    var s=eval(date);

    $(s).each(function(key,val){
      

  11.   


    success:function(json){                     
    $.each(json,function(i,data){
    alert(i+'----'+data)
    })}
     //alert(data);         
      

  12.   

    我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
    ajax 返回的是字符串,就算是json,你这么用也不对 ,
    怎么不是json类型了?我后台写的也是json啊。
    ajax 返回来的就是个字符串,用eval(date)转一下。success:function(data){
    //$("#city").append("<option>"+"沈阳"+"</option>");
    alert(111);
    var question = eval("(" + data + ")");
    alert(222);
    alert(question);

    },
    我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
    ajax 返回的是字符串,就算是json,你这么用也不对 ,
    怎么不是json类型了?我后台写的也是json啊。
    ajax 返回来的就是个字符串,用eval(date)转一下。我发的ajax请求设置的typeData是json,返回的应该是json类型的吧?
    ajax 返回的是字符串,就算是json,你这么用也不对 ,
    怎么不是json类型了?我后台写的也是json啊。
    ajax 返回来的就是个字符串,用eval(date)转一下。success:function(data){
    //$("#city").append("<option>"+"沈阳"+"</option>");
    alert(111);
    var question = eval("(" + data + ")");
    alert(222);
    alert(question);
    },
    转换了啊,111有输出,222和后面的没输出。
      

  13.   

    用console.log(data)输出,结构都出来了,用firebug你一看就明白啦
      

  14.   

    eval("(" + data + ")");这个方法要根据你的字符串是什么格式的,如果你字符串已经是这种格式:[{id:1,name:mx},{id:1,name:mx},{id:1,name:mx}]  这么写就可以eval( data )。