मेरे पास एक नेस्टेड JSON ऑब्जेक्ट है जिसे मुझे लूप करने की आवश्यकता है, और प्रत्येक कुंजी का मान एक स्ट्रिंग, JSON सरणी या अन्य JSON ऑब्जेक्ट हो सकता है। ऑब्जेक्ट के प्रकार के आधार पर, मुझे विभिन्न ऑपरेशन करने की आवश्यकता है। वहाँ किसी भी तरह से मैं वस्तु के प्रकार की जाँच कर सकता हूँ यह देखने के लिए कि क्या यह स्ट्रिंग, JSON ऑब्जेक्ट या JSON सरणी है?
मैंने उपयोग करने की कोशिश की typeofऔर instanceofदोनों काम नहीं कर रहे थे, जैसा typeofकि JSON ऑब्जेक्ट और एरे दोनों के लिए एक ऑब्जेक्ट लौटाएगा, और instanceofजब मैं करता हूं तो एक त्रुटि देता है obj instanceof JSON।
JSON को जेएस ऑब्जेक्ट में पार्स करने के बाद अधिक विशिष्ट होने के लिए, क्या कोई तरीका है जो मैं जांच सकता हूं कि क्या यह सामान्य स्ट्रिंग है, या चाबियाँ और मान के साथ ऑब्जेक्ट (JSON ऑब्जेक्ट से), या एक सरणी (JSON सरणी से) )?
उदाहरण के लिए:
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
}
}
जैसा कि ऊपर दिखाया गया है, मैं ऑब्जेक्ट चेकिंग कैसे करूं?