Döngüye girmem gereken iç içe geçmiş bir JSON nesnem var ve her anahtarın değeri bir String, JSON dizisi veya başka bir JSON nesnesi olabilir. Nesnenin türüne bağlı olarak farklı işlemler yapmam gerekiyor. Bir String, JSON nesnesi veya JSON dizisi olup olmadığını görmek için nesnenin türünü kontrol etmemin bir yolu var mı?
Hem JSON nesnesi hem de dizi için bir nesne döndürecek ve yaptığımda hata veriyor gibi typeof
ve kullanmayı denedim instanceof
ama ikisi de işe yaramadı .typeof
instanceof
obj instanceof JSON
Daha spesifik olmak gerekirse, JSON'u bir JS nesnesine ayrıştırdıktan sonra, bunun normal bir dize olup olmadığını veya anahtarlar ve değerlere sahip bir nesne (JSON nesnesinden) veya bir dizi (JSON dizisinden) olup olmadığını kontrol etmenin herhangi bir yolu var mı? )?
Örneğin:
JSON
var data = "{'hi':
{'hello':
['hi1','hi2']
},
'hey':'words'
}";
Örnek 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
}
}
Yukarıda gösterildiği gibi nesne kontrolünü nasıl yapabilirim?