Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单对象的JSON序列化不一致_Javascript_Json_Serialization - Fatal编程技术网

Javascript 简单对象的JSON序列化不一致

Javascript 简单对象的JSON序列化不一致,javascript,json,serialization,Javascript,Json,Serialization,我使用的每一个JSON序列化实用程序或库似乎都被破坏了,我无法得到关于这一点的逻辑解释 让我解释一下。我在Firebug中为.NET的JSON库(可能是其他语言)运行以下代码 我只是在运行Firefox时签入: var obj1 = "test"; var obj1serialization = JSON.stringify(obj1); 输出为“测试”。但这是无效的JSON对象!因此,当我尝试从序列化的JSON重新创建对象时,失败了,说明JSON字符串不正确: var obj2 = JSON

我使用的每一个JSON序列化实用程序或库似乎都被破坏了,我无法得到关于这一点的逻辑解释

让我解释一下。我在Firebug中为.NET的JSON库(可能是其他语言)运行以下代码

我只是在运行Firefox时签入:

var obj1 = "test";
var obj1serialization = JSON.stringify(obj1);
输出为
“测试”
。但这是无效的JSON对象!因此,当我尝试从序列化的JSON重新创建对象时,失败了,说明JSON字符串不正确:

var obj2 = JSON.parse(obj1serialization);
字符串是对象。但它们在JSON中的序列化不起作用。这种情况有什么合乎逻辑的解释吗?

在(不同于几种编程语言)中,字符串不是对象,而是原语(如数字和布尔)。您要求序列化程序创建一个JSON片段。有效的JSON文档的顶级项始终是对象或数组。如果将其中一个输入到
JSON.stringify
,它将生成一个有效、完整的JSON文档

大多数JSON序列化程序允许片段这一事实非常有用。他们唯一的选择是,如果您向他们传递的不是对象或数组的内容,则抛出异常

更具限制性,要求您提供的JSON文档既完整又格式良好。并非所有的JSON解析例程都有如此严格的限制,但其中一个是。

在(不同于几种编程语言)中,字符串不是对象,而是原语(如数字和布尔值)。您要求序列化程序创建一个JSON片段。有效的JSON文档的顶级项始终是对象或数组。如果将其中一个输入到
JSON.stringify
,它将生成一个有效、完整的JSON文档

大多数JSON序列化程序允许片段这一事实非常有用。他们唯一的选择是,如果您向他们传递的不是对象或数组的内容,则抛出异常

更具限制性,要求您提供的JSON文档既完整又格式良好。并非所有的JSON解析例程都有这样的限制,但这一个是。

“我使用的每个JSON序列化实用程序或库似乎都被破坏了…”事实上,它们中的每一个都应该向您表明,您的理解可能不完整,而不是其他人都弄错了。:-)“我使用的每一个JSON序列化实用程序或库似乎都被破坏了…”事实上,它们中的每一个都应该向您表明,您的理解可能不完整,而不是其他人都弄错了。:-)