Saya memiliki objek JSON bersarang yang perlu saya putar ulang, dan nilai setiap kunci bisa berupa String, array JSON, atau objek JSON lainnya. Bergantung pada jenis objek, saya perlu melakukan operasi yang berbeda. Apakah ada cara agar saya dapat memeriksa jenis objek untuk melihat apakah itu adalah String, objek JSON, atau array JSON?
Saya mencoba menggunakan typeof
dan instanceof
tetapi keduanya tampaknya tidak berhasil, karena typeof
akan mengembalikan objek untuk objek dan array JSON, dan instanceof
memberikan kesalahan ketika saya melakukannya obj instanceof JSON
.
Untuk lebih spesifik, setelah mem-parsing JSON menjadi objek JS, adakah cara untuk memeriksa apakah itu string normal, atau objek dengan kunci dan nilai (dari objek JSON), atau array (dari array JSON )?
Sebagai contoh:
JSON
var data = "{'hi':
{'hello':
['hi1','hi2']
},
'hey':'words'
}";
Contoh JavaScript
var jsonObj = JSON.parse(data);
var path = ["hi","hello"];
function check(jsonObj, path) {
var parent = jsonObj;
for (var i = 0; i < path.length-1; i++) {
var key = path[i];
if (parent != undefined) {
parent = parent[key];
}
}
if (parent != undefined) {
var endLength = path.length - 1;
var child = parent[path[endLength]];
//if child is a string, add some text
//if child is an object, edit the key/value
//if child is an array, add a new element
//if child does not exist, add a new key/value
}
}
Bagaimana cara saya melakukan pengecekan objek seperti gambar di atas?