这是一个非常非常非常奇怪的问题。
我有一个在Windows XP和7上运行的JSCRIPT,它使用dos CSCRIPT
在一个名为testJSON.js
的文件中。
if ( ! this.JSON ) WScript.Echo("JSON DOESN'T EXISTS");
而且,消息出现了,但这是JSCRIPT的意外行为,因为JSON(如MSDN documentation所说)是
JSCRIPT 5.8
中的默认对象之一,而我在Windows 7上的系统正好运行JSCRIPT 5.8
。现在,我已经通过创建一个新的文本文件并手动组成一个有效的JSON字符串(用一个稍微复杂的脚本)来临时解决了这个问题(很明显,即使系统没有要求的
JSCRIPT 5.8
,这也使得一切正常JSON),但我主要想了解两件事:1st 为什么即使我的JSCRIPT版本是支持该对象的版本,我也不能使用JSON对象?
第二个我的JSCRIPT环境中有read something about the "enabling" of the JSON (and other) unavailable object,但是所有示例都是针对C#的,我想知道是否存在一些与JSCRIPT等效的代码。
最佳答案
根据MSDN的说明,Windows Script Host默认使用JScript 5.7功能集来实现向后兼容。 JScript 5.8功能集仅在IE8 +标准文档模式下的Internet Explorer中使用。
您有以下选择:
IActiveScriptProperty::SetProperty
强制使用JScript 5.8功能集(SCRIPTLANGUAGEVERSION_5_8
)。 Here's a C++ example。 只能使用具有适当COM支持的语言来创建自定义脚本执行主机,例如C++,C#等。不能使用JScript,因为例如,它不支持out参数。
关于json - cscript jscript JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19445189/