解决方案 »

  1.   

    该用jquery1.3 仍旧不行
      

  2.   

    生成的Json格式,看着确实有问题不知道生成前是个什么结构的数据
      

  3.   


    是用org.json.jar的JSONObject对象
    jsonobject.put("uid", user.getId())
    然后再用jsonarray.put(jsonobject)
      

  4.   


    是用org.json.jar的JSONObject对象
    jsonobject.put("uid", user.getId())
    然后再用jsonarray.put(jsonobject)
    json格式类似于如下:
    简单型:{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }复杂型:{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }
    你的这种类型属于复杂型延伸的一种。除了uid,看里面还有is_manager。而is_manager是个表结构。
    你可以单独测试某个字段。就很容易发现问题。或者直接手写json然后赋值,先注释掉那个工具包的put,再测试测试,就很容易找到错误点。
      

  5.   


    是用org.json.jar的JSONObject对象
    jsonobject.put("uid", user.getId())
    然后再用jsonarray.put(jsonobject)
    json格式类似于如下:
    简单型:{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }复杂型:{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }
    你的这种类型属于复杂型延伸的一种。除了uid,看里面还有is_manager。而is_manager是个表结构。
    你可以单独测试某个字段。就很容易发现问题。或者直接手写json然后赋值,先注释掉那个工具包的put,再测试测试,就很容易找到错误点。刚刚试了一下$.ajax({
                            data:{
                                uid:uid
                            },
                            url:'userOneShow.jsp',
                            type:'post',
                            //dataType:'json',
                            error:function(jsonData){alert('Error Loading JSON document' + jsonData);},
                            success:function(jsonData){
                                /*
                                $.each(jsonData, function(i){
                                    str+="用户编号:"+jsonData[i].uid+"<br>";
                                    str+="用户名:"+jsonData[i].name+"<br>";
                                    $.each(jsonData[i].is_manager, function(j){
                                        str+="产品编号"+jsonData[i][j].product_id+"<br>";
                                    })
                                })*/
                                $("#show").html(jsonData);
                            }
                            
                        })
    success 是有被调用的,但是jsonData就是无法输出
    error 是没有被调用的
      

  6.   


    我又测试了一下,你的那1条json数据,无问题,可以获取数据。
    是不是你还有其他测试数据,并非这一条。如果还有问题,那就是数据里有非法字符了,看看数据里有没有\{}等等json的关键字。
      

  7.   

    另外你说: 去掉datatype:"json"就可以输出。
    这样的话,那你就去掉或写成text吧,json本身就是text,只不过写成json后,便于区分罢了
      

  8.   

    另外你说: 去掉datatype:"json"就可以输出。
    这样的话,那你就去掉或写成text吧,json本身就是text,只不过写成json后,便于区分罢了
    补充一下,如果是text格式的话,要使用var mJSONData = [];
    eval(" mJsonData =" + jsonData);
    来进行赋值,才可按照json格式来使用。此时的变量就变成了mJsonData。
    你就都试一下吧。总有适合于你的方法。
      

  9.   

    现在浏览器一般用自带的Json做解析 Json.Parse()