Javascript 获取AngularJS中JSON数组的大小

Javascript 获取AngularJS中JSON数组的大小,javascript,json,angularjs,Javascript,Json,Angularjs,我使用AngularJS通过ajax调用呈现html页面,该调用返回json文件 如何使用angularjs获取下面JSON中的id计数 [{"id":1,"Name":"Apple"}, {"id":2,"Name":"Mango"}, {"id":3,"Name":"Banana"} {"id":4,"Name":"Coconut"} {"id":5,"Name":"pineaple"} {"id":6,"Name":"Orange"} {"id":7,"Name":"Guava

我使用AngularJS通过ajax调用呈现html页面,该调用返回json文件

如何使用angularjs获取下面JSON中的id计数

[{"id":1,"Name":"Apple"},
 {"id":2,"Name":"Mango"},
 {"id":3,"Name":"Banana"}
 {"id":4,"Name":"Coconut"}
 {"id":5,"Name":"pineaple"}
 {"id":6,"Name":"Orange"}
 {"id":7,"Name":"Guava"}]

你不需要角度来计算它的长度

在本例中,您解析的JSON是一个简单数组,您可以通过以下方法获得长度:

obj.length
假设
obj
包含解析后的JSON:

var obj = [{"id":1,"Name":"Apple"},
{"id":2,"Name":"Mango"},
{"id":3,"Name":"Banana"}
{"id":4,"Name":"Coconut"}
{"id":5,"Name":"pineaple"}
{"id":6,"Name":"Orange"}
{"id":7,"Name":"Guava"}]

如果obj.length不起作用,请确保在适当的控制器内对其进行校准。

在HTML中,让我们假设您的数组是“comments”(一种常见用例):


您还可以对表示“无注释”效果的元素执行
ng hide=“{{comments.length}}”
。如果使用其他键更改JSON数组,会发生什么情况?我提出的解决方案是针对通用JSON数组。例如,我使用$resource获取数据: $resource(pathToJSON).query()-->它返回ResourceClass,而不是JSON数组

之后,您需要执行下一步:

$scope.resourceClass = $resource(pathToJSON).query();
$scope.resourceClass.$promise-->返回promise对象

$scope.resourceClass.$promise.then(function(data) {
      console.log(data.length);
});
数据是JSON数组。

检查示例

功能存储器(obj){
var字节=0;
函数sizeOf(obj){
if(obj!==null&&obj!==未定义){
开关(obj类型){
案件编号:
字节+=8;
打破
大小写“string”:
字节+=对象长度*2;
打破
“布尔”大小写:
字节+=4;
打破
案例“对象”:
var objClass=Object.prototype.toString.call(obj.slice)(8,-1);
if(对象类=='Object'| |对象类==='Array'){
for(obj中的var键){
如果(!obj.hasOwnProperty(key))继续;
sizeOf(obj[键]);
}
}else bytes+=obj.toString().length*2;
打破
}
}
返回字节;
};
函数formatByteSize(字节){
如果(字节<1024)返回字节+字节;
elseif(字节<1048576)返回(字节/1024).toFixed(3)+“KiB”;
else if(字节<1073741824)返回(字节/1048576).toFixed(3)+“MiB”;
else返回(字节/1073741824).toFixed(3)+“GiB”;
};
返回formatByteSize(sizeOf(obj));
};
var test=[{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'},{name:'aa'}];
变量大小=内存化(测试);
警报(大小);

这本书的可能副本非常简单,您可以在30秒内找到它。它甚至没有角度…@domokun它是一个规则数组而不是对象你试过
array.length
?@charlietfl是的..试过了,但结果显示错误这是正确的答案。我在json.length中出错,该属性“length”在类型“{}”上不存在。谢谢你@Akash
$scope.resourceClass = $resource(pathToJSON).query();
$scope.resourceClass.$promise.then(function(data) {
      console.log(data.length);
});
function memorySizeOf(obj) {
    var bytes = 0;

    function sizeOf(obj) {
        if(obj !== null && obj !== undefined) {
            switch(typeof obj) {
            case 'number':
                bytes += 8;
                break;
            case 'string':
                bytes += obj.length * 2;
                break;
            case 'boolean':
                bytes += 4;
                break;
            case 'object':
                var objClass = Object.prototype.toString.call(obj).slice(8, -1);
                if(objClass === 'Object' || objClass === 'Array') {
                    for(var key in obj) {
                        if(!obj.hasOwnProperty(key)) continue;
                        sizeOf(obj[key]);
                    }
                } else bytes += obj.toString().length * 2;
                break;
            }
        }
        return bytes;
    };

    function formatByteSize(bytes) {
        if(bytes < 1024) return bytes + " bytes";
        else if(bytes < 1048576) return(bytes / 1024).toFixed(3) + " KiB";
        else if(bytes < 1073741824) return(bytes / 1048576).toFixed(3) + " MiB";
        else return(bytes / 1073741824).toFixed(3) + " GiB";
    };

    return formatByteSize(sizeOf(obj));
};

var test = [{ name :'aa'},{ name :'aa'},{ name :'aa'},{ name :'aa'},{ name :'aa'},{ name :'aa'},{ name :'aa'},{ name :'aa'},{ name :'aa'}];
var size = memorySizeOf(test);
alert(size);
Json Data:

            { "docNme": "HSL_Invoice_SRG Network_2", "isMultiPage": true, "pgLst": [ { "pgH": "792.0", "pgW": "612.0", "pgNo": "1", "prmLst": [ { "isReference": "false", "ocrKey": "officeAddress", "keyNm": "Office Address", "keyLoc": "34,106,68,9", "keyFont": "", "keyClr": "", "valNm": "", "valLoc": "34,117,176,113", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "godownAddress", "keyNm": "Godown Address", "keyLoc": "216,106,77,9", "keyFont": "", "keyClr": "", "valNm": "", "valLoc": "216,117,176,113", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "GSTIN", "keyNm": "GSTIN", "keyLoc": "382,106,30,9", "keyFont": "", "keyClr": "", "valNm": "27AAACH1925Q1ZK", "valLoc": "420,106,94,9", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "invoiceNo", "keyNm": "Invoice No.", "keyLoc": "382,129,55,9", "keyFont": "", "keyClr": "", "valNm": "56789", "valLoc": "444,129,32,9", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "poNo", "keyNm": "PO No.", "keyLoc": "382,223,36,9", "keyFont": "", "keyClr": "", "valNm": "HSL-IT-0038-2017/2018", "valLoc": "424,223,118,9", "valFont": "", "valClr": "" } ] }, { "pgH":"792.0", "pgW":"612.0", "pgNo":"2", "prmLst":[ { "isReference": "false", "ocrKey": "officeAddress", "keyNm": "Office Address", "keyLoc": "34,106,68,9", "keyFont": "", "keyClr": "", "valNm": "", "valLoc": "34,117,176,113", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "godownAddress", "keyNm": "Godown Address", "keyLoc": "216,106,77,9", "keyFont": "", "keyClr": "", "valNm": "", "valLoc": "216,117,176,113", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "GSTIN", "keyNm": "GSTIN", "keyLoc": "382,106,30,9", "keyFont": "", "keyClr": "", "valNm": "27AAACH1925Q1ZK", "valLoc": "420,106,94,9", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "invoiceNo", "keyNm": "Invoice No.", "keyLoc": "382,129,55,9", "keyFont": "", "keyClr": "", "valNm": "56789", "valLoc": "444,129,32,9", "valFont": "", "valClr": "" }, { "isReference": "false", "ocrKey": "poNo", "keyNm": "PO No.", "keyLoc": "382,223,36,9", "keyFont": "", "keyClr": "", "valNm": "HSL-IT-0038-2017/2018", "valLoc": "424,223,118,9", "valFont": "", "valClr": "" }] } ] }


Fetch Size :

    let pageLstSize=this.data.pgLst;
        console.log(pageLstSize);

Output : 2