从servlet端传过来来json串在js端如何接受?ext???

解决方案 »

  1.   

    js用eval函数转换
    var data = eval(服务器返回的json串)jquery的话,用getJSON函数取
      

  2.   

    js里:var R=eval("("+JsonString+")");
      

  3.   


    <!--obj是请求的参数-->
    function getInfo(obj) {
      if (obj) {
      $.getJSON("servletName", {obj:obj}, function(json){
      $.each(json, function (index, entry) {
       //在这处理就行了。获取值比如:entry["id"]   
      });
      });
      }
    }
      

  4.   

    servlet是已response.write(json);方式传过来的!!!
      

  5.   

    现在的问题是如何获取response过来的json- -!
      

  6.   

    你是用jquery  AJAX的吧.
    data就是JSON
      

  7.   

    首先,服务器端的json必须写成
    {"prop1": value1, "prop2": value2}
    这种形式。属性名的"不能省略,也不能写成'然后,写入response之后,形成文本流用ajax,或者java(只要可以ping到Servlet的)都可以取到#3楼用的是Jquery的写法。servletName,是你Servlet的地址接下来介绍直接调用ajax的取法
    function createXmlHttpRequest() {

    var tryThese = [function() {return new XMLHttpRequest();},
                    function() {return new ActiveXObject('Msxml2.XMLHTTP');},
                    function() {return new ActiveXObject('Microsoft.XMLHTTP');}];

    for (var index = 0; index < tryThese.length; index++) {
    try {
    return tryThese[index]();
    } catch(e) {}
    }
    alert("Ajax is not supported.");
    return null;
    }
    function getJSON(url) {
        
        var xmlHttp = createXmlHttpRequest();
        
        xmlHttp.open(url, "GET", true);
        xmlHttp.onreadystatechange = function() {        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                 // xmlHttp.responseText可以取到你的json;
                 // 这里是JSON的反串行化方法
            }
        }
        xmlHttp.send(null);
    }// 反串行化方法
    (1) eval+括号
    var testStr = "{name: 'test'}";
    var obj = eval('(' + testStr + ')');
    (2) JSON.parse
    要求:返回的json内不得包含',必须是",且属性也必须加"
    (3) eval(不推荐)
    eval('var obj = ' + 得到的json字符串)
      

  8.   

    楼上说的很多了,你看看3楼说的jQuery里的getJson()方法
    里面的function(json)中的参数就是返回来的json啊