在我的异步请求中,该请求会返回一个data参数,data的值为
Response: Success
Message: Authentication accepted
请问大侠,怎样经这个值保存成js的关联数组?
如:arr["Response"]=Success
       arr["Message"]=Authentication accepted

解决方案 »

  1.   

    不用在保存起来
    你后台返回过来的格式写成这样(字符串格式):
    var str='{
       Response:'success',Message:‘Authentication accepted’
    }'
    var o = eval("(" + str+ ")");//转化成对象
    alert(o.Response);
    alert(o.Message);
      

  2.   


    var arr = new Array();
    arr["Response"] = "Success";
    arr["Message"] = "Authentication accepted";
    alert(arr["Response"]);
    alert(arr["Message"]);
      

  3.   

    2楼的怎么抄袭我啊?!
    怎样将data="Response: Success Message: Authentication accepted"保存成关联数组?
    如:arr["Response"]=Success
      arr["Message"]=Authentication accepted
      

  4.   

    不改变后台输出的数据格式
    只能笨方法了:
    var arr=data.split(':')来解决了。结果['Response','Success Message',Authentication accepted''];
    再arr[1].split(' ');结果[ 'Success','Message']
      

  5.   

    data="{'Response': 'Success','Message': 'Authentication accepted'}"
    var arr=eval("(" + str+ ")");
    alert(arr.Response)
    alert(arr.Message)
      

  6.   

    eval("(" + str+ ")");都是用这个的了。
      

  7.   

    不改变后台格式:var data = "Response: Success Message: Authentication accepted";
    var arr = data.match( /Response\s*:\s*(\w+)\s*Message\s*:\s*([\w ]+)/);
    var o = {
          Response : arr&&arr[1] ? arr[1] : "",
          Message : arr&&arr[2] ? arr[2] : ""
    }
    alert( "Response :" + o.Response + ", Message: " + o.Message);
      

  8.   


    var str="{"+$.trim(data)+"}";
    var obj=eval("("+str+")");
    alert(obj.Response);这段代码我在运行时报错,说missing } after property list          alert(obj.Response);                                   
      

  9.   

      var obj=eval('('+str+')');
      

  10.   


    var data="[{Response: 'Success'},{Message: 'Authentication accepted'}]";//这样就是一个数组的形式了,数组存放了2个对象
    var arr=eval("(" + str+ ")");
    alert(arr[0].Response)
    alert(arr[1].Message)