我有一个这种格式的json文件。
var fs = require('fs');
contents = fs.readFileSync('./update_result.json');
jsonContent = JSON.parse(contents);
it('get', function(){
var str = jsonContent.getText('assertions');
console.log(str.count());
})
READ JSON
{{1}}
我想要的是得到“断言”这个词的所有出现次数
答案 0 :(得分:0)
标签断言出现在数组中的每个对象中,因此获取数组的长度将为您提供出现的次数。
让我们假设你的json被保存在一个名为json的变量中。
json[x]["assertion"]
将为您提供值,其中x是数组中对象的索引,在本例中为
[("passed":true}]
要访问true或false,只需使用
json[x]["assertion"][0]["passed"]
答案 1 :(得分:0)
试试这个
var fs = require('fs');
contents = fs.readFileSync('./update_result.json');
jsonContent = JSON.parse(contents);
var assertionsTrue = [];
var assertionsFail = [];
var totalAssertionCount = 0;
it('get', function(){
for(var i=0;i<jsonContent.length;i++){
if(jsonContent[i].assertions != null && jsonContent[i].assertions != undefined){
totalAssertionCount++;
if(jsonContent[i].assertions.passed == true)
assertionsTrue.push(jsonContent[i].assertions);
else
assertionsFail.push(jsonContent[i].assertions);
}
}
console.log(totalAssertionCount);
})
您将在assertionsTrue
列表中看到True Assertions,在assertionsFail
中出现断言,在totalAssertionCount
中出现断言总数
答案 2 :(得分:0)
如果您的目标是仅获取对象数组中的键数,则可以尝试使用字符串解析
function getKeyCount(searchKey, obj) {
var r = new RegExp('"' + searchKey + '":', 'g');
return (JSON.stringify(obj).match(r) || []).length;
}
var d = [{
"description": "testcase1",
"assertions": [{
"passed": true
}],
"duration": 1246
}, {
"description": "testcase2",
"assertions": [{
"passed": true
}],
"duration": 4
}, {
"description": "description",
"duration": 4
}];
console.log(getKeyCount('assertions', d))
console.log(getKeyCount('description', d))
&#13;
答案 3 :(得分:0)
试试这个
jsonContent = JSON.parse(contents);
var j=0;
for(i = 0; i < jsonContent.length; i++)
{
if(jsonContent[i].assertions)
{
j++;
}
}
console.log("assertions:"+j);
答案 4 :(得分:0)
你可以写类似的东西:
var myObj = [
{
"description": "testcase1",
"assertions": [
{
"passed": true
}
],
"duration": 1246
},
{
"description": "testcase2",
"assertions": [
{
"passed": true
}
],
"duration": 4
}
]
var counter = 0;
Array.prototype.getOccurence = function(arr){
return ++counter
}
for (var key in myObj){
var nodes = myObj[key];
Array.prototype.getOccurence(myObj[key].assertions)
}
console.log('Assertion occured :' + counter + "time")