আমার একটি নেস্টেড জেএসওএন অবজেক্ট রয়েছে যার মাধ্যমে আমার লুপ হওয়া দরকার এবং প্রতিটি কী এর মান একটি স্ট্রিং, জেএসওন অ্যারে বা অন্য কোনও জেএসওএন অবজেক্ট হতে পারে। অবজেক্টের ধরণের উপর নির্ভর করে আমার বিভিন্ন অপারেশন করা দরকার। এটির স্ট্রিং, জেএসওএন অবজেক্ট বা জেএসওন অ্যারে কিনা তা দেখার জন্য আমি কি কোনও উপায়ে পরীক্ষা করতে পারি?
আমি ব্যবহার করার চেষ্টা করেছি typeofএবং instanceofউভয়ই কাজ করছে বলে মনে হচ্ছে না, যেমনটি typeofJSON অবজেক্ট এবং অ্যারে উভয়ের জন্য কোনও বস্তু ফিরে আসবে এবং instanceofআমি যখন করি তখন একটি ত্রুটি দেয় obj instanceof JSON।
আরও সুনির্দিষ্টভাবে বলতে গেলে, জেএসএনকে কোনও জেএস অবজেক্টে পার্স করার পরে, আমি কোনও সাধারণ স্ট্রিং, বা কী এবং মানগুলির সাথে একটি বস্তু (একটি জেএসএন বস্তু থেকে), বা একটি অ্যারে (জেএসএন অ্যারে থেকে) যাচাই করতে পারি কিনা এমন কোনও উপায় আছে কি? )?
উদাহরণ স্বরূপ:
জেএসওএন
var data = "{'hi':
{'hello':
['hi1','hi2']
},
'hey':'words'
}";
নমুনা জাভাস্ক্রিপ্ট
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
}
}
উপরের মত আমি কীভাবে অবজেক্ট চেকিং করব?