grunt.file.readJSON 单元素
grunt.file.readJSON with single element
我遇到了最奇怪的问题,希望其他人已经看到了这个问题,甚至可能已经解决了。
以前,我的 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"]
}
然后数组按预期显示了两个元素。有任何想法吗?如何使用字符串保留单个元素数组?
从评论中可以看出,感谢 Michael Radionov,这是基于 grunt-protractor-runner 将参数更改为命令行变量。那就是说一切都变成了一个字符串。切线地,这个 Whosebug 问答中也提到了这一点:
How can I use command line arguments in Angularjs Protractor?
在这个 grunt-protractor-runner 问题中
https://github.com/teerapap/grunt-protractor-runner/issues/130
您会讨厌的快速解决方法 - 我知道我讨厌,是更改您的 json 然后在您的量角器文件中解析 json。
这个:
someObj.data = ["abc"]
变为:
someObj.data = "[\"abc\"]"
现在在您的量角器文件中,您只需提取您的数据:
var myArray = JSON.parse(someObj.data);
您将获得预期的数据。
我遇到了最奇怪的问题,希望其他人已经看到了这个问题,甚至可能已经解决了。
以前,我的 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"]
}
然后数组按预期显示了两个元素。有任何想法吗?如何使用字符串保留单个元素数组?
从评论中可以看出,感谢 Michael Radionov,这是基于 grunt-protractor-runner 将参数更改为命令行变量。那就是说一切都变成了一个字符串。切线地,这个 Whosebug 问答中也提到了这一点:
How can I use command line arguments in Angularjs Protractor?
在这个 grunt-protractor-runner 问题中
https://github.com/teerapap/grunt-protractor-runner/issues/130
您会讨厌的快速解决方法 - 我知道我讨厌,是更改您的 json 然后在您的量角器文件中解析 json。
这个:
someObj.data = ["abc"]
变为:
someObj.data = "[\"abc\"]"
现在在您的量角器文件中,您只需提取您的数据:
var myArray = JSON.parse(someObj.data);
您将获得预期的数据。