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