输入为单值时的JSON.stringify()结果

时间:2016-02-13 16:25:32

标签: javascript json

JSON.stringify()方法将JavaScript值转换为JSON

console.log(JSON.stringify('a'));
//produce "a"
console.log(JSON.stringify(1));
//produce 1
console.log(JSON.stringify(true));
//produce true

但根据定义,这些不是JSON

"a"
1
true

JSON定义如下所示

  

JSON基于两种结构:

     

名称/值对的集合。在各种语言中,这是   实现为对象,记录,结构,字典,哈希表,键控   列表或关联数组。

     

有序的值列表。在大多数语言中,这被实现为数组,向量,列表或序列。

我的问题是JSON.stringify()在输入上面的值时不生成JSON,为什么会这样?

1 个答案:

答案 0 :(得分:4)

  

JSON.stringify()方法将JavaScript值转换为JSON   string,如果是replacer函数,则可以选择替换值   如果是,则指定或者可选地仅包括指定的属性   指定了replacer数组。

参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

" 我的问题是JSON.stringify()在输入上面的值时不生成JSON为什么会这样?"

这些都是表示JSON值的有效JSON语法:

"a"
1
true
{}
[]

检查一下:

JSON.parse('"foo"'); // returns "foo"
JSON.parse(1); // returns 1
JSON.parse(true); // returns true
JSON.parse('{}'); // returns {}
JSON.parse('[]');  // returns []

如需更多说明,请查看以下答案:

Is this simple string considered valid JSON?

What is the minimum valid JSON?