【发布时间】:2015-09-24 21:46:24
【问题描述】:
我遇到了最奇怪的问题,希望其他人已经看到了这个问题,甚至可能有解决办法。
以前,我在我的 grunt.js 文件中有一组用于量角器测试的参数。下面的简单例子:
params: {
userId: "abc",
someData: ["abc"]
}
这没有问题。然后随着数据的增长,我觉得将其外部化到另一个文件会更好,所以我这样做并使用 grunt.file.readJSON 加载了该文件。
params: grunt.file.readJSON('my/external/file.json');
以及文件的内容:
{
"userId": "abc",
"someData": ["abc"]
}
检查params.userId 效果很好。但是,如果我检查 params.someData 的长度,我得到的长度是 3 而不是 1。数组已更改。但是,如果我对 someData 再做一次这样的更改:
{
"userId": "abc",
"someData": ["abc", "def"]
}
然后数组按预期显示两个元素。有任何想法吗?如何用字符串保存单元素数组?
【问题讨论】:
-
我测试的时候没问题。
grunt.file.readJSON只是对文件的内容执行JSON.parse,因此不应该与文件解析有关。grunt.file.readJSON('my/external/file.json')会返回错误数据还是稍后损坏? -
另外,你用
grunt-protractor-runner吗? -
是的,我正在使用 grunt-protractor-runner。当我运行量角器测试时,它显示已损坏。如果我在加载的数据上添加
console.log(),我会看到问题。奇怪的是,我在提取对象内容时遇到了另一个问题:{ label: "a", description: "abc"}在量角器中,当我console.log输出代码时,我会得到一个始终等于[object Object]的数组。显然我看到了正在发生的事情,我只是不知道为什么以及如何解决它。 -
我想知道在它到达 Protractor 之前是否一切正常,你可以在 Gruntfile 中
console.log(grunt.file.readJSON('my/external/file.json'))吗?它应该将结果打印到终端。我很好奇,因为您说它在您将选项移动到另一个文件之前就可以工作。 -
很好的提示。我只是用下面的代码重新运行,它是正确的。这意味着量角器/grunt-protractor-runner
grunt.registerTask('testData', function(arg){ var data = grunt.file.readJSON("sources/protractor/local/settings.json"); grunt.log.write(data.testData.length); });某处的问题返回 1
标签: javascript json gruntjs protractor