相关疑难解决方法(0)

什么是最小有效JSON?

我仔细阅读了JSON描述http://json.org/,但我不确定我是否知道这个简单问题的答案.哪些字符串是最小可能的有效JSON?

  • "string" 字符串是有效的JSON吗?
  • 42 是简单的数字有效JSON?
  • true 布尔值是有效的JSON吗?
  • {} 空对象是有效的JSON吗?
  • [] 空数组是一个有效的JSON吗?

javascript validation json

157
推荐指数
5
解决办法
6万
查看次数

为什么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)

javascript ajax json

5
推荐指数
1
解决办法
1364
查看次数

标签 统计

javascript ×2

json ×2

ajax ×1

validation ×1