我已经阅读了一些有关此问题,但仍不清楚。哪个是正确的:
{"some_parameter": "true"}
Run Code Online (Sandbox Code Playgroud)
要么
{"some_parameter": true}
Run Code Online (Sandbox Code Playgroud)
我认为第二个是通过json发送布尔值的正确,正确的方法吗?但是第一个仍然是有效的json ...
这里的上下文是我正在构建一个API(供某些第三方应用程序使用),并且我想知道是否完全禁止第一种类型(拒绝错误)或像这样的字符串接受布尔数据是否合理,并且试图处理(转换)它们?
小智 9
布尔值必须不带引号传递。Boolean 是 json 支持的类型之一: https: //www.json.org/json-en.html,预期值为 true 或 false,不带引号。
当解析数据的接收端是弱类型语言(如 Javascript)时,它仍然可以使用引号,当您在布尔上下文中使用它时,它会自动转换值,但遵循标准的规定总是更好。
小智 7
是的,我们可以在 Json 中传递布尔值。只是我们需要以小写形式写入值。例如
{
"fullName": "Deepak Dongre",
"gender": true,
"dob": "1986-11-16",
"mobileNumber": 97959000321,
"tblMstHobbyDetails": []
}
Run Code Online (Sandbox Code Playgroud)
简短的回答,是的,这是发送JSON的正确方法。除了引号外,您不应在字符串中放置其他任何内容。
长答案,
这取决于数据类型。对于密钥,是的,您必须使用引号,但只能用于字符串。另外,如果要在单引号中放置引号,则可以使用单引号。(或使用转义符)
'
Run Code Online (Sandbox Code Playgroud)
例如,vs
"
Run Code Online (Sandbox Code Playgroud)
至于您的布尔值,如果您希望将其直接转换为布尔值,则不需要包含引号。整数和双精度值相同。
但是,如果您要将其作为字符串传递,则需要将其放在引号内。
通常,当您讨论哪种类型的系统将接受您的数据时,会询问这些类型的问题。
通常,在任何地方使用字符串都容易得多,但是它效率极低,并且如果收件人想对int进行算术运算,则导致收件人需要强制转换它们,但它会作为字符串传递。
| 归档时间: |
|
| 查看次数: |
4446 次 |
| 最近记录: |