在JSON中为所有数据类型使用字符串是一个好主意吗?

时间:2016-07-21 16:07:21

标签: javascript json

举个例子,在设计从服务器返回的JSON时,这是更好的做法:

方法1:将值作为正确的类型返回:

{
    "id": 1,
    "name": "A green door",
    "price": 12.50,
    "tags": ["home", "green"]
}

方法2:用双引号括起所有值,如下所示:

{
    "id": "1",
    "name": "A green door",
    "price": "12.50",
    "tags": ["home", "green"]
}

哪种方法更好?每种方法的优缺点是什么?有任何权衡吗?

2 个答案:

答案 0 :(得分:1)

最好只对实际字符串使用引号,而不是对整数等任何其他类型使用引号。

通过将所有内容存储为字符串,任何解析json并期望int但获取字符串的应用程序将抛出异​​常。它也可能对性能产生影响,因为字符串比其他类型占用更多内存。

根据具体情况,您可以编写或找到负责类型转换的解析器,但更容易按预期使用引号。

因此,除非您必须将此json提供给现有应用程序,该应用程序希望将每种类型存储为字符串,否则我认为没有理由为所有类型使用引号。

答案 1 :(得分:0)

精度损失不利。你丢掉了固有的意义。如果你根据你的申请更容易做到这一点,那就没关系了;只要知道你在做什么。