当使用JSON填充页面的一部分时,我经常会遇到需要特殊格式化的数据 - 格式化需要与页面上已有的格式匹配,这是在服务器端完成的。
可能需要将数字格式化为货币,特殊日期格式或包含负值。
但是应该在何处进行格式化 - 在客户端进行操作意味着我需要复制在服务器端发生的所有格式化。在服务器端执行此操作并将格式化的值放在JSON对象中意味着不太通用且可重用的数据集。
这里推荐的方法是什么?
答案 0 :(得分:2)
一般的答案是尽可能地将数据格式化为尽可能晚的/尽可能接近用户(或者“实际”是一个更好的术语)。
这令人恼火地意味着它的“依赖”答案 - 你或多或少已经确定了你必须做出的妥协,即你是否通过格式化服务器端来消除灵活性/可移植性,或者你是否可能会介绍通过做客户端重复。
就个人而言,我倾向于客户端,除非有一个很好的理由不这样做 - 只是因为我们回到尝试尽可能接近用户的格式,尽管我会有点担心确保我正在浏览器中应用正确的格式规则。
答案 1 :(得分:1)
JSON支持以下基本类型:
货币通常只是一个数字,但根据国家特定的规则进行格式化。并且日期根本没有包含在JSON中。
无论推荐什么,取决于您在应用程序中执行的操作以及您正在使用的JScript库类型。如果您已经在服务器端代码中格式化了很多数据,那么将其添加到那里。如果没有,并且你已经有一些类可以处理格式化(JQuery和MooTools有一些功能),可以在浏览器中进行。
因此要么在客户端格式化它们,要么在发送之前对它们进行格式化 - 两种解决方案都有效。
如果您想深入研究这一点,我建议this wikipedia article about JSON。