2011-11-22 64 views
0

當使用JSON填充頁面的一部分時,我經常會遇到數據需要特殊格式 - 需要與頁面上已有的格式匹配,這在服務器端完成。JSON數據應該包含格式化數據嗎?

某個數字可能需要格式化爲貨幣,特殊日期格式或包裝爲負值。

但是,這種格式應該發生在哪裏 - 在客戶端做它意味着我需要複製在服務器端發生的所有格式。在服務器端執行此操作並將格式化的值放入JSON對象中意味着不太通用且可重用的數據集。

這裏推薦的方法是什麼?

回答

2

一般的答案是將數據格式化爲儘可能晚或接近用戶(或者可能「實用」是更好的術語)。

刺激地說,這意味着它的「它取決於」的答案 - 而且你已經或多或少地已經確定了你將要做出的妥協,也就是說,你是否通過格式化服務器端來刪除靈活性/可移植性,或者你是否有潛力通過做客戶端來引入重複。

就我個人而言,我會傾向於客戶端,除非有一個很好的理由不這樣做 - 只是因爲我們回來試圖儘可能接近用戶格式的東西,雖然我會有點擔心做確定我在瀏覽器中應用了正確的格式規則。

1

JSON支持以下基本類型:

  • 號碼,
  • 絃樂,
  • 布爾,
  • 陣列,
  • 對象
  • 和Null(空)。

貨幣通常不是別的,而是根據國家特定的規則格式化。日期尚未包含在JSON中。

無論什麼是值得推薦的取決於你在你的應用程序中做什麼以及你已經使用了哪種JScript庫。如果您已經在服務器端代碼中格式化了大量數據,請將其添加到那裏。如果沒有,並且你已經有了一些類,它們可以處理格式化(JQuery和MooTools有一些功能),那麼在瀏覽器中執行它。

因此,無論是在客戶端格式化還是在發送之前對其進行格式化 - 兩種解決方案都可以工作。

如果你想深入研究這個,我建議this wikipedia article about JSON