मुझे पता है कि JSON स्ट्रिंग को पार्स कैसे करें और इसे जावास्क्रिप्ट ऑब्जेक्ट में बदल दें। आप JSON.parse()
आधुनिक ब्राउज़रों (और IE9 +) में उपयोग कर सकते हैं ।
यह बहुत अच्छा है, लेकिन मैं उस जावास्क्रिप्ट ऑब्जेक्ट को कैसे ले सकता हूं और इसे एक विशेष जावास्क्रिप्ट ऑब्जेक्ट (यानी एक निश्चित प्रोटोटाइप के साथ) में बदल सकता हूं ?
उदाहरण के लिए, मान लीजिए कि आपके पास:
function Foo()
{
this.a = 3;
this.b = 2;
this.test = function() {return this.a*this.b;};
}
var fooObj = new Foo();
alert(fooObj.test() ); //Prints 6
var fooJSON = JSON.parse({"a":4, "b": 3});
//Something to convert fooJSON into a Foo Object
//....... (this is what I am missing)
alert(fooJSON.test() ); //Prints 12
फिर, मैं यह नहीं सोच रहा हूं कि जेन्स स्ट्रिंग को जेनेरिक जावास्क्रिप्ट ऑब्जेक्ट में कैसे परिवर्तित किया जाए। मैं जानना चाहता हूं कि JSON स्ट्रिंग को "फू" ऑब्जेक्ट में कैसे परिवर्तित किया जाए। अर्थात्, मेरे ऑब्जेक्ट में अब एक फ़ंक्शन 'टेस्ट' और गुण 'a' और 'b' होना चाहिए।
अद्यतन कुछ शोध करने के बाद, मैंने इस बारे में सोचा ...
Object.cast = function cast(rawObj, constructor)
{
var obj = new constructor();
for(var i in rawObj)
obj[i] = rawObj[i];
return obj;
}
var fooJSON = Object.cast({"a":4, "b": 3}, Foo);
क्या वह काम करेगा?
अद्यतन मई, 2017 : ऐसा करने का "आधुनिक" तरीका है Object.assign
, लेकिन यह फ़ंक्शन IE 11 या पुराने एंड्रॉइड ब्राउज़र में उपलब्ध नहीं है।