我将字符串解析为JSON对象,我需要能够递归地遍历对象的属性。所以我试图创建一个迭代对象属性的函数,如果一个属性不是一个原语,那么用属性本身再次调用该函数(递归)。
在Javascript中,我可以这样解决:
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);
但我正在远离Javascript,并试图学习如何使用Kotlin。所以我找到了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)
}
有人可以帮忙吗?