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没用双引号包裹,其它开源库大都亦然,这是问什么,一直有这个疑问,望大家解答下~
看了上面的答案,汗了一下
首先,
JSON
和Javascript
对象是两回事。JSON
是一种数据交换格式,虽然是从Javascript
对象标识中发展出来的,但是它本身和Javascript
是独立的一种规范,它不是Javascript
语法的一部分。与JSON
相提并论的是XML
之类的规范。另外,JSON
是纯文本的。
你所提供的代码是
Javascript
对象,语法没有JSON
严格,而且数据类型也会更多,但它是Javascript
专用,是Javascript
基础语法的一部分。准确的来说,在
Javascript
声明一个JSON
的代码应该是这样的:带双引号的是标准
JSON
的写法,key
中可用包含一些特殊字符如-
之类的下面那个是
JSON
对象,也就是Javascript
中的对象,只不过正好符合JSON
的写法使用
JSON.stringify
方法可用将JSON
对象转换成JSON
字符串对应
JSON.parse
方法可用将JSON
字符串转换成Javascript
中的对象来使用。被转换的
JSON
字符串必须符合标准JSON
字符串规范js 里的 key 可加可不加“
加"是规范,不加"是浏览器兼容