首页 > JSON格式疑问?

JSON格式疑问?

js原生代码中声明json对象格式:

var person = {"name" : "Tom", "age" : 25};
console.log(person.name);

毫无疑问,是标准json格式,只包含 { " , : }5种特殊字符;


jQuery代码中json对象格式:

$.ajax('someUrl', { …… data : { name :'Tom', age : 25 } …… });

而这里,在声明对象格式时name、age没用双引号包裹,其它开源库大都亦然,这是问什么,一直有这个疑问,望大家解答下~


看了上面的答案,汗了一下

首先,JSONJavascript 对象是两回事。

JSON 是一种数据交换格式,虽然是从 Javascript 对象标识中发展出来的,但是它本身和 Javascript 是独立的一种规范,它不是 Javascript 语法的一部分。与 JSON 相提并论的是 XML 之类的规范。另外,JSON
是纯文本的。

你所提供的代码是 Javascript 对象,语法没有 JSON 严格,而且数据类型也会更多,但它是 Javascript 专用,是 Javascript 基础语法的一部分。

准确的来说,在 Javascript 声明一个 JSON 的代码应该是这样的:

var person = '{"name":"Tom","age":25}';

js 里的 key 可加可不加“


加"是规范,不加"是浏览器兼容


带双引号的是标准JSON的写法,key中可用包含一些特殊字符如-之类的
下面那个是JSON对象,也就是Javascript中的对象,只不过正好符合JSON的写法
使用JSON.stringify方法可用将JSON对象转换成JSON字符串
对应JSON.parse方法可用将JSON字符串转换成Javascript中的对象来使用。
被转换的JSON字符串必须符合标准JSON字符串规范

【热门文章】
【热门文章】