3 Mayıs 2011, Salı
Ayrıştırma JSON JavaScript Nesne, Belirli bir Prototip içine Dize
Bir JSON Dizesini ayrıştırmak ve JavaScript bir Nesne haline nasıl geldiğini biliyorum. Eval() veya bir WordPress kullanmak.() parseJSON.
Bu harika, ama bunu nasıl JavaScript Nesne alıp çevirebilirözellikleJavaScript Nesne (belirli bir prototip ile yani)?
Örneğin, varsayalım:
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 = jQuery.parseJSON({"a":4, "b": 3});
//Something to convert fooJSON into a Foo Object
//....... (this is what I am missing)
alert(fooJSON.test() ); //Prints 12
Yine, genel bir JavaScript Nesnesine JSON dize dönüştürmek için nasıl merak ediyorum. Bir "" Nesne. Foo içine bir JSON dize dönüştürmek için nasıl bilmek istiyorum Benim Nesne artık bir işlevi olmalı '' ve özellikleri 'a' ve 'b'. test
GÜNCELLEME Biraz araştırma yaptıktan sonra bunu düşünmüştüm
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);
Bu işe yarayacak mı?
CEVAP
3 Mayıs 2011, Salı
Aşağıda bir örnek (bu örnek, yerel JSON nesne kullanır). Benim değişiklikleri BAŞKENTLERİNDE yorumladı
function Foo(obj) // CONSTRUCTOR CAN BE OVERLOADED WITH AN OBJECT
{
this.a = 3;
this.b = 2;
this.test = function() {return this.a*this.b;};
// IF AN OBJECT WAS PASSED THEN INITIALISE PROPERTIES FROM THAT OBJECT
for (var prop in obj) this[prop] = obj[prop];
}
var fooObj = new Foo();
alert(fooObj.test() ); //Prints 6
// INITIALISE A NEW FOO AND PASS THE PARSED JSON OBJECT TO IT
var fooJSON = new Foo(JSON.parse('{"a":4,"b":3}'));
alert(fooJSON.test() ); //Prints 12
Bunu Paylaş:
Güvenli bir nesne içine bir JSON dize ...
C dön " JSON dize içine nesne .NET 4...
C serisini JSON içine# dinamik nesne?...
JS nesne dize JSON dönüştürmek...
(Element) JSON nesne için yeni bir özn...