你如何在JSON API中表示无穷大?

Oin*_*Oin 9 api json infinity

在JSON API中表示无穷大的最佳方法是什么?例如,可以免费阅读本月的文章(对于某些订阅,这将是一个有限的数字,对于高级订阅,这将是无限的).

返回null此用例或扩展 JSON并使用javascript的Infinity值是一个更好的主意吗?后者似乎更合适,但我从未见过这样做的API的例子.

如果有人有任何代表无限的公共Web API的例子,那也很酷.

Bjö*_*hel 6

我将包含一个“限制”字段,该字段仅在确实存在限制时才存在:

当用户剩下40个时:

{
    "yourdata":"",
    "limit": 40
}
Run Code Online (Sandbox Code Playgroud)

当用户具有无限访问权限时,将其删除,这意味着没有限制:

{
    "yourdata":""
}
Run Code Online (Sandbox Code Playgroud)

  • 好的,您可以使用 boolean: "isLimited":"true/false" 添加另一个字段来仔细检查。但你真的应该尝试制作一个你可以信任的 api。如果这个字段可能是错误的,我不会相信任何其他字段。 (2认同)

Jua*_*des 5

我的建议是使用数字表示特定值,使用字符串表示理论值。我觉得最清楚了。

{
  "shoes": 89,
  "cars": "infinity",
  "myBankAccount": "negative-infinity"
}
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不是流行的选择。我已经看到-1, null, 和undefined(没有属性)在很多情况下意味着无限。

在 VMware,我们使用 -1 来指定没有限制(内存、CPU、VM)并且我们在使用 null 时遇到了问题,因为 BlazeDS 将 null 转换为 0,而 0 是一个有效值。


小智 5

数字 1e500 被解析为无穷大


console.log(1e500); // Gives Infinity

Or

JSON.parse('{"number": 1e500}'); // Gives {number: Infinity}

Run Code Online (Sandbox Code Playgroud)