SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Police

    Android Poli

    21 NİSAN 2010
  • FND Films

    FND Films

    2 Mayıs 2006
  • Joanna Okrajni

    Joanna Okraj

    4 EYLÜL 2010