source

JSON 개체 크기 가져오기

gigabyte 2022. 11. 8. 21:07
반응형

JSON 개체 크기 가져오기

AJAX 요구에 의해 반환된 JSON 오브젝트가 있는데, 이 오브젝트에 문제가 있습니다..length계속 돌아오기 때문에undefined제대로 사용하고 있는지 궁금할 뿐입니다.

console.log(data.length);
console.log(data.phones.length);

둘 다 돌아오다undefined유효한 객체임에도 불구하고 말이죠.

업데이트:
반환된 JSON 개체의 샘플:

{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}

이런 거 써도 돼

var myObject = {'name':'Kasun', 'address':'columbo','age': '29'}

var count = Object.keys(myObject).length;
console.log(count);

문제는 전화기 객체에 길이 속성이 없다는 것입니다(반환하는 JSON 내의 어딘가에서 정의하지 않는 한). 객체가 관련 배열로 사용되는 경우에도 어레이와 동일하지 않기 때문입니다.phones 객체가 배열일 경우 길이가 지정됩니다.두 가지 옵션이 있습니다(아마도 더 있을 수 있습니다.

  1. JSON 구조를 변경(이것이 가능하다고 가정)하여 '전화'를

    "phones":[{"number":"XXXXXXXXXX","type":"mobile"},{"number":"XXXXXXXXXX","type":"mobile"}]
    

    (각 전화기의 워드 넘버 ID는 0 ~10 진배열로 반환되므로 없습니다).이 응답에서는phones.length유효합니다.

  2. 전화기 오브젝트에 포함된 오브젝트를 반복하여 카운트합니다.예를 들어, 예를 들어,

    var key, count = 0;
    for(key in data.phones) {
      if(data.phones.hasOwnProperty(key)) {
        count++;
      }
    }
    

새로운 브라우저만을 대상으로 하는 경우 옵션 2는 다음과 같습니다.

JSON 형식을 변경할 필요가 없습니다.

대체:

console.log(data.phones.length);

포함:

console.log( Object.keys( data.phones ).length ) ;

언더스코어.js의 사용을 검토해 주십시오.다음과 같이 크기를 확인할 수 있습니다.

var data = {one : 1, two : 2, three : 3};
_.size(data);
//=> 3
_.keys(data);
//=> ["one", "two", "three"]
_.keys(data).length;
//=> 3
var json=[{"id":"431","code":"0.85.PSFR01215","price":"2457.77","volume":"23.0","total":"565.29"},{"id":"430","code":"0.85.PSFR00608","price":"1752.45","volume":"4.0","total":"70.1"},{"id":"429","code":"0.84.SMAB00060","price":"4147.5","volume":"2.0","total":"82.95"},{"id":"428","code":"0.84.SMAB00050","price":"4077.5","volume":"3.0","total":"122.32"}] 
var obj = JSON.parse(json);
var length = Object.keys(obj).length; //you get length json result 4

이거 먹어봐

$.parseJSON(data).length

이것을 사용하다

Object.keys(jsonObject).길이

$(document).ready(function () {
    $('#count_my_data').click(function () {
        var count = 0;
        while (true) {
             try {
                var v1 = mydata[count].TechnologyId.toString();
                count = count + 1;
            }
            catch (e)
            { break; }
        }
        alert(count);
    });
});

언급URL : https://stackoverflow.com/questions/6756104/get-size-of-json-object

반응형