У мене є вкладений об'єкт JSON, який мені потрібно прокрутити, і значенням кожного ключа може бути String, масив JSON або інший об'єкт JSON. Залежно від типу об’єкта мені потрібно виконувати різні операції. Чи можу я якось перевірити тип об’єкта, чи це String, JSON-об’єкт чи масив JSON?
Я спробував з допомогою typeofі , instanceofа й , схоже , не на роботу, а typeofбуде повертати об'єкт як для об'єкта JSON і масиву, і instanceofвидає помилку , коли я роблю obj instanceof JSON.
Якщо бути більш точним, то після синтаксичного аналізу JSON на об’єкт JS, чи можу я якось перевірити, чи це звичайний рядок, чи об’єкт із ключами та значеннями (від об’єкта JSON), чи масив (із масиву JSON )?
Наприклад:
JSON
var data = "{'hi':
{'hello':
['hi1','hi2']
},
'hey':'words'
}";
Зразок 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
}
}
Як здійснити перевірку об’єкта, як показано вище?