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 typeofve kullanmayı denedim instanceofama ikisi de işe yaramadı .typeofinstanceofobj 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?