2014-04-11 87 views
0

我正在使用Jquery和AJAX在後面的C#代碼中調用Web方法,該方法運行存儲過程,然後將數據作爲字符串發回。這一切都很完美。無法從JSON響應中創建javascript數組

當我返回我的值並嘗試從它們中創建一個數組以便我可以僅從數組中選擇某些對象時,一切都會分崩離析。我做了一個快速的FIDDLE我遇到的問題。

我收到一個字符串,像這樣從我的存儲過程:12, 1288, 1800, 3088, 26288

但是當我嘗試獲得「12」只是,我要麼接受整個字符串或只是「1」從12

我已經嘗試了一切從makeArray, stringify, split, replacing then splitting, making an array variable and push() into it ...似乎沒有任何工作。

下面是我的一些廢料代碼,我已經被註釋掉,因爲我嘗試,同時通過加強我還加了碼的圖像背後:

$.ajax({ 
         type: "POST", 
         url: "LeadGraphGeneration.aspx/GetData", 
         contentType: "application/json; charset=utf-8", 
         data: strRequest, 
         dataType: "json", 
         success: function (msg) { 
          var returned = (msg.d); 
          //       var returned = new Array(); 
          //       $(msg.d).each(function() { 
          //        returned.push(this); 
          //       }); 

          ret1 = returned[1]; 

          //       var returnedd = JSON.stringify(msg.d); 
          //       var returned = $.makeArray(returnedd); 



          //       var ret1 = returned[0]; 
          //       var ret2 = returned[1]; 
          //       var ret3 = returned[2]; 
          //       var ret4 = returned[3]; 
          //       var ret5 = returned[4]; 


          //data1 = dataArray[0]; 


          $("#PaymentPeriod").text(ret1); 
          //       $("#TotalInterest").text(ret2); 
          //       $("#TotalFees").text(ret3); 
          //       $("#TotalCost").text(ret4); 
          //       $("#TotalPayment").text(ret5); 

enter image description here (右鍵,打開在全新的選項卡中) 我希望你能幫我弄清楚爲什麼我不能從數組中挑選單個對象,而我正在努力構建它。

如果您需要更多信息,請讓我知道。

+1

試試這個'var rett = $ .parseJSON(「[」+ returnedd +「]」);' – Anton

+0

@Anton,謝謝。這也工作:) – Mike

回答

2

「但是當我試圖獲得‘12’只是,我要麼接受整個字符串或只是‘1’從12 ..」

如果字符串爲"12, 1288, 1800, 3088, 26288",它是在msg.d,則:

var returned = msg.d.split(/\s*,\s*/); 

正則表達式告訴split分裂上的可選的空白字符,隨後是逗號,接着可選空白字符的任何運行的字符串。

+1

謝謝TJ ...這工作!我會盡快接受答案。我需要刷上我的正則表達式,所以我不會坐幾個小時試圖排列一些東西。哈哈 – Mike

1
var returnedd = "12, 1288, 1800, 3088, 26288" 
var rett = $.makeArray(returnedd); 

makeArray不會在格式轉換爲字符串數組,而使用split

var rett = returnedd.replace(/\s/g, "").split(","); 
alert(rett[0]) 

至於

ret2 = returnedd[0]; 

這是一個調用[0]這會給你第一個char(就像.charAt(0)

+0

謝謝亞歷克斯..每個建議幫助。週末愉快! – Mike