【javascript】ajax提交成功後的json返回值

 通常處理服務器傳來的json值時,咱們都會用兩種方式進行處理:1.一種爲使用eval()函數。var dataObj=eval("("+data+")");//轉換爲json對象(注:data爲json數據);2. 使用Function對象來進行返回解析。var json =(new Function("","return "+data))();json

可是今天作項目(項目用struts2)時用這兩種方法進行json讀取,輸出時一直是undefined。上網查了許多資料,大多都說不明白,後來查到一篇文章做者也遇到這種狀況,他解決的辦法是在action中將返回值聲明json屬性,在本身的項目上測試後不經過,後來解決的辦法是再轉一次。如下是本身的思考:從後臺傳來的數據雖然聲明爲json屬性,可是傳到前臺時其實仍是一個字符串,不是一個json對象,這時候咱們須要對後臺的數據進行處理,轉化爲json對象,而後獲取json中的值。可是有時候後臺傳來的值不必定是標準的json格式的字符串,雖然咱們經過前面的兩種方法之一轉化後臺傳來的對象,可是這時候轉化的json對象實際上仍是一個字符串,是一個標準的json字符串,咱們再一次轉換後就成了一個json對象。服務器

      如下是部分代碼:函數

           result = JSONObject.fromObject(map).toString();//後臺代碼,將map轉成json對象測試

           success : function(result) {對象

       //前臺返回值代碼
       var obj = eval("("+result+")");
      //var data1 =(new Function("","return "+obj))();
      var data1=eval("("+obj+")");
     alert(data1.name);字符串

           }io

相關文章
相關標籤/搜索