2011-11-22 66 views
0

当使用JSON填充页面的一部分时,我经常会遇到数据需要特殊格式 - 需要与页面上已有的格式匹配,这在服务器端完成。JSON数据应该包含格式化数据吗?

某个数字可能需要格式化为货币,特殊日期格式或包装为负值。

但是,这种格式应该发生在哪里 - 在客户端做它意味着我需要复制在服务器端发生的所有格式。在服务器端执行此操作并将格式化的值放入JSON对象中意味着不太通用且可重用的数据集。

这里推荐的方法是什么?

回答

2

一般的答案是将数据格式化为尽可能晚或接近用户(或者可能“实用”是更好的术语)。

刺激地说,这意味着它的“它取决于”的答案 - 而且你已经或多或少地已经确定了你将要做出的妥协,也就是说,你是否通过格式化服务器端来删除灵活性/可移植性,或者你是否有潜力通过做客户端来引入重复。

就我个人而言,我会倾向于客户端,除非有一个很好的理由不这样做 - 只是因为我们回来试图尽可能接近用户格式的东西,虽然我会有点担心做确定我在浏览器中应用了正确的格式规则。

1

JSON支持以下基本类型:

  • 号码,
  • 弦乐,
  • 布尔,
  • 阵列,
  • 对象
  • 和Null(空)。

货币通常不是别的,而是根据国家特定的规则格式化。日期尚未包含在JSON中。

无论什么是值得推荐的取决于你在你的应用程序中做什么以及你已经使用了哪种JScript库。如果您已经在服务器端代码中格式化了大量数据,请将其添加到那里。如果没有,并且你已经有了一些类,它们可以处理格式化(JQuery和MooTools有一些功能),那么在浏览器中执行它。

因此,无论是在客户端格式化还是在发送之前对其进行格式化 - 两种解决方案都可以工作。

如果你想深入研究这个,我建议this wikipedia article about JSON