Frage

Ich bin für eine Erweiterung JSON, die auch Methoden serialisiert werden. Ich habe ein Objekt, das als eine Sammlung von Objekten dient, und möchte auch die Methoden des Sammelobjekt serialisieren. Bisher habe ich gelegen ClassyJSON . Irgendwelche Gedanken?

War es hilfreich?

Lösung

Ich glaube nicht, Methoden der Serialisierung ist immer eine gute Idee. Wenn Sie den Code serverseitig ausgeführt werden, öffnen Sie sich für Angriffe. Wenn Sie es Client-Seite ausführen möchten, sind Sie besser dran, nur die lokalen Methoden, möglicherweise den Namen der Methode verweisen Sie in den serialisierten Objekte verwenden werden.

Ich glaube aber, dass "f = "+function() {} Sie auf String-Version ergeben, die Sie können eval:

var test = "f = " + function() { alert("Hello"); };
eval(test)

Und für eine gute Handhabung json, würde ich empfehlen, Prototyp, der für die Serialisierung Objekte json große Methoden hat.

Andere Tipps

Versuchen Sie wegzukommen ohne Javascript-Code Serialisierung. Auf diese Weise liegt eine Welt des Schmerzes. Debugging wird viel einfacher, wenn der Code nur aus statischen Dateien kommt, nicht aus einer Datenbank. Stattdessen gehen Ihre JSON Antworten, nachdem Sie sie erhalten und die entsprechenden Daten an die entsprechenden Objektkonstruktoren übergeben.

Wenn Sie unbedingt sie serialisiert werden muss, ruft toString () auf eine Funktion seiner Quelle zurück.

Wenn Sie WCF Framework verwenden RESTful Web-Service zu entwickeln, das ist sehr einfach zu erreichen. Einfach Ihre Datenstruktur Klassen mit Ihrer gewünschten Sammlung erstellen mit Datacontract, Datamember Attributen.

[DataContract]
public class Foo
{
    [DataMember]
     public string FooName {get;set;}
    [DataMember]
     public FooItem[] FooItems {get;set;}
}


[DataContract]
public class FooItem
{
    [DataMember]
    public string Name {get;set;}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top