search

Home  >  Q&A  >  body text

javascript - 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没用双引号包裹,其它开源库大都亦然,这是问什么,一直有这个疑问,望大家解答下~

阿神阿神2785 days ago747

reply all(4)I'll reply

  • ringa_lee

    ringa_lee2017-04-11 12:07:25

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

    首先,JSONJavascript 对象是两回事。

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

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

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

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

    reply
    0
  • 怪我咯

    怪我咯2017-04-11 12:07:25

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

    reply
    0
  • 迷茫

    迷茫2017-04-11 12:07:25

    js 里的 key 可加可不加“

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-11 12:07:25

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

    reply
    0
  • Cancelreply