0

我需要将一些 JSON 字符串从我的服务器返回给最终用户,其中有一个记录为字符串的字段,但该字段的值始终是一个数字,所以我必须始终将其返回为:

{"attr": "99"}

还是这也有效:

{"attr": 99}

客户抱怨我应该把 99 放在引号中,因为它被记录为一个字符串,并且他们的解析器会将数字 99 解析为产生问题的数字类型。

谢谢

4

3 回答 3

2

tl;dr 由于“..被记录为字符串”,因此使用字符串

字符串(例如“99”)和数字(例如 99)是JSON 中的两种不同类型的值

一些消费者可以在反序列化时自动在字符串和数字之间转换,而另一些消费者则不能——在这种情况下,它显示为“不能”或“不会”。由于指定了外部 API,因此应该尊重它。至少如果它不起作用,那不是你的代码破坏;-)

于 2013-10-17T19:46:53.060 回答
0

如果您保证它始终是一个数字,并且您希望它被视为一个数字,请取消引用它。如果有可能获得非数字值,或者您希望将其视为字符串,请将其保留为引号。

于 2013-10-17T19:46:12.440 回答
0

它应该被引用。客户需要字符串值,并且这是明确记录的,因此没有意义抵消。

于 2013-10-17T19:53:48.007 回答