asp.net httpresponseexception Wie serialisieren Sie JavaScript-Objekte mit Methoden, die JSON verwenden




web api global exception handling (3)

Wenn Sie WCF-Framework verwenden, um RESTful Web Service zu entwickeln, ist das sehr einfach zu erreichen. Erstellen Sie einfach Ihre Datenstrukturklassen mit Ihrer gewünschten Sammlung 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;}
}

Ich suche nach einer Erweiterung zu JSON, die auch Methoden serialisieren wird. Ich habe ein Objekt, das als Sammlung von Objekten fungiert und die Methoden des Auflistungsobjekts ebenfalls serialisieren möchte. Bisher habe ich ClassyJSON gefunden . Irgendwelche Gedanken?


Versuchen Sie, ohne JavaScript-Code zu serialisieren. Auf diese Weise liegt eine Welt des Schmerzes. Das Debuggen wird viel einfacher, wenn der Code nur aus statischen Dateien stammen kann, nicht aus einer Datenbank. Stattdessen gehen Sie Ihre JSON-Antworten, nachdem Sie sie erhalten haben, und übergeben Sie die entsprechenden Daten an die entsprechenden Objektkonstruktoren.

Wenn Sie sie unbedingt serialisieren müssen, wird der Aufruf von toString () für eine Funktion ihre Quelle zurückgeben.


Ich denke nicht, dass Serialisierungsmethoden jemals eine gute Idee sind. Wenn Sie beabsichtigen, den Code serverseitig auszuführen, öffnen Sie sich für Angriffe. Wenn Sie es clientseitig ausführen möchten, sollten Sie nur die lokalen Methoden verwenden und möglicherweise auf den Namen der Methode verweisen, die Sie in den serialisierten Objekten verwenden werden.

Ich glaube jedoch, dass "f = "+function() {} Ihnen eine to-String-Version liefert, die Sie bewerten können:

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

Und für eine gute Json-Handhabung würde ich den Prototyp empfehlen, der großartige Methoden zum Serialisieren von Objekten in Json hat.





viewstate