2017-12-14 10 views
0

문자열을 JSON 객체로 구문 분석 중이므로 객체의 속성을 반복적으로 반복 할 수 있어야합니다. 그래서 객체의 속성을 반복하는 함수를 만들려고합니다. 속성이 프리미티브가 아니면 속성 자체로 함수를 다시 호출합니다 (재귀).JsonObject의 속성을 반복적으로 반복하는 방법은 무엇입니까?

function forEachAttribute(object) { 
    for (let key in object) { 
     let attribute = object[key]; 
     if (typeof attribute === "object") { 
      forEachAttribute(attribute); 
     } else { 
      console.log(key + ": " + attribute); 
     } 
    } 
} 

let myObject = { 
    innerObject: { 
     x: 123 
    }, 
    y: 456 
}; 

forEachAttribute(myObject); 

를하지만 멀리 자바 스크립트에서 이동, 대신 코 틀린를 사용하는 방법을 배우려고 노력 해요 :

자바 스크립트에서 나는 이런 식으로 해결 것입니다. 그래서 a way to iterate through the attributes of a JSON object을 찾았습니다.

그러나 속성이 원시인지 여부를 결정하는 방법을 잘 모르겠습니다.

import kotlin.js.Json 

fun iterateThroughAttributes(jsonObject: Json) { 
    for (key in js("Object").keys(jsonObject)) { 
     val attribute = jsonObject[key] 
     // How do I determine if the attribute is a primitive, or not? 
    } 
} 

fun main (args: Array<String>) { 
    val someString = "(some json string)" 
    val jsonObject = JSON.parse<Json>(someString) 
    iterateThroughAttributes(jsonObject) 
} 

누군가 도움을 줄 수 있습니까?

답변

0

is을 사용하여 객체가 Java에서 instanceOf과 동일한지 검사 할 수 있습니다.

자세한 내용은 this question을 참조하십시오.