如何用js解析?获取里边的profile的值,hdr_maxlen的值,因为这个跟普通的json比,在profile和hdr_maxlen上都加上了一对双引号,所以我不知如何获取了{"profile":"profile1","hdr_maxlen":"1","cookies_maxnum":"2","hdrfield_maxnum":"3","hdrkey_maxlen":"4","hdrval_maxlen":"5","learn_enable":"1","learn_time":"30","learn_result":"learn result","action":"2","log_level":"2","enable":"0"}

解决方案 »

  1.   

    你不用管它有没有引号, json就是key-value的形式.
    比如我定义一个var t = 你上面那一个json串.
    var profile = t.profile. 这样就ok了.  js本身就是弱类型的语言.!
      

  2.   

    同意,json就是key-value的形式,直接.key就行了
      

  3.   

      var s = loader.getResponseText();
    alert(s);
    alert(s.profile);   
    其中alert(s);就是弹出的下面这段:{"profile":"profile1","hdr_maxlen":"1","cookies_maxnum":"2","hdrfield_maxnum":"3","hdrkey_maxlen":"4","hdrval_maxlen":"5","learn_enable":"1","learn_time":"30","learn_result":"learn result","action":"2","log_level":"2","enable":"0"}那为什么我用s.profile弹出的却是undefined?
      

  4.   

    你看你拿到的是什么.. getResponseText();就是说你拿到的结果是带""
    json的{}外面套双引号就不是json了.! 
    如果你是json对象的话,alert()的东西应该是
    [object Object], alert出文本了说明不是json
    字符串是没有profile属性的.!
      

  5.   

    转换一下
    var json = eval(loader.responseText());
      

  6.   


    var s = loader.getResponseText();
    var obj = eval("(" + s + ")");
    alert(obj.profile);
      

  7.   


    eval()可以实现转换吗?我测试了一下不可以啊,提示缺少;
      

  8.   

    是的, 用eval把String转成json
      

  9.   

    var t = "{id:1,name:'abc'}";
    var json = eval("(" + t + ")");
    alert(json);
    要加()以后转