JSON数据是否应包含格式化数据?

时间:2011-11-22 12:17:46

标签: ajax json

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

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

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

这里推荐的方法是什么?

2 个答案:

答案 0 :(得分:2)

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

这令人恼火地意味着它的“依赖”答案 - 你或多或少已经确定了你必须做出的妥协,即你是否通过格式化服务器端来消除灵活性/可移植性,或者你是否可能会介绍通过做客户端重复。

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

答案 1 :(得分:1)

JSON支持以下基本类型:

  • 数字,
  • 字符串,
  • 布尔,
  • 阵列,
  • 对象
  • 和Null(空)。

货币通常只是一个数字,但根据国家特定的规则进行格式化。并且日期根本没有包含在JSON中。

无论推荐什么,取决于您在应用程序中执行的操作以及您正在使用的JScript库类型。如果您已经在服务器端代码中格式化了很多数据,那么将其添加到那里。如果没有,并且你已经有一些类可以处理格式化(JQuery和MooTools有一些功能),可以在浏览器中进行。

因此要么在客户端格式化它们,要么在发送之前对它们进行格式化 - 两种解决方案都有效。

如果您想深入研究这一点,我建议this wikipedia article about JSON