代码之家  ›  专栏  ›  技术社区  ›  Inigo

是否可以/应该在JSON中用引号传递布尔值?

  •  2
  • Inigo  · 技术社区  · 7 年前

    我已经通读了一些关于这个的问题,但我还是不清楚。正确的是:

    {"some_parameter": "true"}
    

    {"some_parameter": true}
    

    我想第二个是正确的, 适当的 如何通过JSON发送布尔值?但是第一个仍然是有效的JSON…

    这里的上下文是我正在构建一个API(由一些第三方应用程序使用),我想知道简单地完全不允许第一个类型(错误地拒绝)或接受布尔数据作为这样的字符串,并尝试处理(转换)它们是否合理?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Jacob Gaiski    7 年前

    简短回答 是的,这是发送JSON的正确方法。除了引号中的字符串外,不应放置其他任何内容。

    长回答 ,

    这取决于数据类型。对于键,Yes必须使用引号,但只能用于字符串。此外,如果要在其中放置引号,也可以使用单引号。(或使用逃逸)

    ' 
    

    例如, VS

    "
    

    至于bool值,如果您希望它直接转换为bool,则不需要包括引号。整数和双值相同。

    但是如果你想把它作为一个字符串传递,你就需要把它放在引号中。

    通常,当您讨论什么类型的系统将接受您的数据时,会询问这些类型的问题。

    通常,在任何地方使用字符串都要容易得多,但它也非常低效,如果收件人想使用int进行算术运算,则需要强制转换这些字符串,例如,它作为字符串传递。