我仔细阅读了JSON描述http://json.org/,但我不确定我是否知道这个简单问题的答案.哪些字符串是最小可能的有效JSON?
"string" 字符串是有效的JSON吗?42 是简单的数字有效JSON?true 布尔值是有效的JSON吗?{} 空对象是有效的JSON吗?[] 空数组是一个有效的JSON吗?来自JSON网站:
JSON基于两种结构:
- 名称/值对的集合.在各种语言中,这被实现为对象,记录,结构,字典,散列表,键控列表或关联数组.
- 有序的值列表.在大多数语言中,这被实现为数组,向量,列表或序列.
现在我有一个返回布尔值的示例服务(这是在PHP中,但它可以是任何服务器端语言):
<?php
header('Content-Type: application/json');
echo 'true';
exit;
Run Code Online (Sandbox Code Playgroud)
当使用ajax请求此页面时(例如使用jQuery):
$.ajax({
url: 'service.php',
dataType: 'json',
success: function (data) {
console.log(data);
console.log(typeof data);
}
});
Run Code Online (Sandbox Code Playgroud)
结果将是:
-> true
-> boolean
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么允许将布尔值作为JSON 返回.它与JSON定义有冲突吗?
我也可以在我的服务中返回数字或字符串:
<?php
header('Content-Type: application/json');
echo '2013';
exit;
Run Code Online (Sandbox Code Playgroud)
结果是:
-> 2013
-> number
Run Code Online (Sandbox Code Playgroud)
对于字符串:
<?php
header('Content-Type: application/json');
echo '"What is going on?"';
exit;
Run Code Online (Sandbox Code Playgroud)
结果是:
-> What is going on?
-> string
Run Code Online (Sandbox Code Playgroud)