2012-09-13 60 views
3

我檢索一個JSON字符串,如下面的jQuery AJAX和XHTML頁面jQuery的AJAX JSON數據截斷零值

{"pID":"T1","avBal":147765035.20,"accBalance":147713417.00} 

我這樣寫了jQuery上顯示出來,

  $.ajax({ 

       type : "GET", 
       url : '../accData.xhtml', 
       dataType : "json", 
       async : true, 
       cache : false, 

       success: function(data) { 
         if(data!=null){ 
          $("#accBalance").text(data.accBalance); 
             $("#avBal").text(data.avBal); 
         } 

      }, 
       error : function() { 
      } 
     }); 

這裏的問題是它將「avBal」顯示爲147765035.2,並將「accBalance」顯示爲147713417,而零值的所有零在值的末尾都會自動截斷。這是jQuery或json的限制還是其他的東西在這裏是錯的?

+0

您可能希望通過他們作爲字符串代替? –

+0

我怎麼去 – Swarne27

+0

由於你的數據來自一個文件,你可以修改它爲{「pID」:「T1」,「avBal」:「147765035.20」,「accBalance」:「147713417.00」}。但在這裏,我假設你是JSON數據生成器,而不是第三方 –

回答

1

請更換您的腳本如下:

$.ajax({ 

       type : "GET", 
       url : '../accData.xhtml', 
       dataType : "json", 
       async : true, 
       cache : false, 

       success: function(data) { 
         if(data!=null){ 
           //chage is here... 
           $("#accBalance").text(parseFloat(data.accBalance).toFixed(2)); 
           $("#avBal").text(parseFloat(data.avBal).toFixed(2)); 
         } 

      }, 
       error : function() { 
      } 
     }); 
+0

您的解決方案運行良好。謝謝。 @keyur在codebins.com – Swarne27

1

不是jQuery或JSON的錯,但JavaScript。 JavaScript是寬鬆輸入的,而1.23都是Number類型。如果精度很重要,請將這些值作爲字符串處理。

這裏是將格式化值作爲一個漂亮的功能要求:

function toFixed(value, precision) { 
    var power = Math.pow(10, precision || 0); 
    return String(Math.round(value * power)/power); 
} 
+0

有沒有一種方法可以將它轉換爲ajax成功方法中的字符串? – Swarne27

+0

請參閱已編輯的答案 – Raybiez