programing

JavaScript에서 json-object 키를 가져옵니다.

muds 2023. 3. 17. 22:05
반응형

JavaScript에서 json-object 키를 가져옵니다.

JavaScript에 json-object가 있는데, 사용한 키를 가져오고 싶습니다.내 JavaScript-Code는 다음과 같습니다.

var jsonData = [{"person":"me","age":"30"},{"person":"you","age":"25"}];

그리고 json-Array의 첫 번째 객체의 키인 'person'과 'age'를 알려주는 루프를 원합니다.

var jsonData = [{"person":"me","age":"30"},{"person":"you","age":"25"}];

for(var i in jsonData){
    var key = i;
    var val = jsonData[i];
    for(var j in val){
        var sub_key = j;
        var sub_val = val[j];
        console.log(sub_key);
    }
}

편집

var jsonObj = {"person":"me","age":"30"};
Object.keys(jsonObj);  // returns ["person", "age"]

Object가 있다property keys, 를 반환한다.Array그것으로부터 열쇠가Object

Chrome, FF 및 Safari 지원Object.keys

[당신이 가지고 있는 것은 'json-object'가 아니라 물건일 뿐입니다.JSON은 텍스트 표기법입니다.당신이 인용한 것은 배열 이니셜라이저객체 이니셜라이저(일명 "개체 리터럴 구문")를 사용하는 JavaScript 코드입니다.]

ECMAScript5 기능을 사용할 수 있는 경우 함수를 사용하여 개체 내의 키 배열(속성 이름)을 가져올 수 있습니다.최신 브라우저는 모두Object.keys(IE9+ 포함).

Object.keys(jsonData).forEach(function(key) {
    var value = jsonData[key];
    // ...
});

이 답변의 나머지는 2011년에 작성되었습니다.현재의 세계에서는, A) IE8 이하를 서포트할 필요가 없는 한(!) 폴리필 할 필요는 없습니다.B) 서포트했을 경우, 직접 작성하거나 SO의 회답으로부터 취득한 일회성으로 폴리필을 실시하지 않습니다(2011년에도 하지 않는 것이 좋습니다).폴리필을 포함하도록 구성할 수 있는 Babel과 같은 트랜스필러를 통해 큐레이션된 폴리필을 사용할 수 있습니다.es5-shim).

다음은 2011년의 나머지 답변입니다.

이전 브라우저에서는 사용할 수 없습니다.그렇지 않은 경우, 다음 중 하나를 직접 제공받을 수 있습니다.

if (typeof Object.keys !== "function") {
    (function() {
        var hasOwn = Object.prototype.hasOwnProperty;
        Object.keys = Object_keys;
        function Object_keys(obj) {
            var keys = [], name;
            for (name in obj) {
                if (hasOwn.call(obj, name)) {
                    keys.push(name);
                }
            }
            return keys;
        }
    })();
}

루프(여기에 추가 정보)를 사용하여 오브젝트가 가진 모든 속성 이름을 루프하고 속성이 상속되지 않고 오브젝트에 의해 직접 소유되는지 확인하기 위해 사용합니다.

(자기실행기능이 없어도 할 수 있었지만, 나는 내 함수에 이름을 붙이고 IE와 호환되도록 하는 것을 선호한다.또한 이름 있는 함수식은 사용할 수 없다[글쎄, 세심한 주의를 기울이지 않고는 사용할 수 없다].따라서 자체 실행 함수는 함수 선언이 글로벌 기호를 생성하지 않도록 하기 위해 있습니다.)

작업 코드

var jsonData = [{person:"me", age :"30"},{person:"you",age:"25"}];

for(var obj in jsonData){
    if(jsonData.hasOwnProperty(obj)){
    for(var prop in jsonData[obj]){
        if(jsonData[obj].hasOwnProperty(prop)){
           alert(prop + ':' + jsonData[obj][prop]);
        }
    }
}
}

언급URL : https://stackoverflow.com/questions/8430336/get-keys-of-json-object-in-javascript

반응형