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没用双引号包裹,其它开源库大都亦然,这是问什么,一直有这个疑问,望大家解答下~
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
看了上面的答案,汗了一下
首先,
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 可加可不加“
加"是规范,不加"是浏览器兼容