我需要从我的服务器向最终用户返回一些JSON字符串,其中有一个字段被记录为字符串,但字段的值始终是一个数字,所以我必须始终将其返回为:
{"attr": "99"}
或者这也是有效的:
{"attr": 99}
客户抱怨我应该在引用中加入99,因为它被记录为字符串,并且它们的解析器会将数字99解析为产生问题的数字类型。
由于
答案 0 :(得分:2)
tl; dr由于“..记录为字符串”,然后使用字符串。
JST中字符串(例如“99”)和数字(例如99)为two different kinds of values。
有些消费者可以在反序列化时自动转换字符串和数字,而其他消费者则不能 - 在这种情况下,它似乎“不能”或“不会”。由于指定了外部API,因此应该遵守。至少如果它不起作用,那不是你的代码破坏; - )
答案 1 :(得分:0)
如果您保证它始终是一个数字,并且您希望将其视为数字,则取消引用它。如果可能获得非数字值,或者您希望将其视为字符串,请将其保留为引号。
答案 2 :(得分:0)
应该引用它。客户端需要字符串值,这是明确记录的,所以没有任何意义可以抵消。