Question

Je recherche une amélioration de JSON qui sérialisera également les méthodes. J'ai un objet qui agit comme une collection d'objets et j'aimerais également sérialiser les méthodes de l'objet collection. Jusqu'à présent, j'ai localisé ClassyJSON . Des pensées?

Était-ce utile?

La solution

Je ne pense pas que la sérialisation des méthodes soit une bonne idée. Si vous avez l'intention d'exécuter le code côté serveur, vous vous exposez aux attaques. Si vous voulez l'exécuter côté client, il vaut mieux se limiter aux méthodes locales, en référant éventuellement au nom de la méthode que vous allez utiliser dans les objets sérialisés.

Je pense cependant que " f = " + function () {} vous donnera une version to string que vous pouvez évaluer:

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

Et pour une bonne gestion de json, je recommanderais prototype, qui possède d'excellentes méthodes pour sérialiser des objets sur json.

Autres conseils

Essayez de vous échapper sans sérialiser le code javascript. De cette façon se trouve un monde de douleur. Le débogage sera beaucoup plus facile si le code ne peut provenir que de fichiers statiques, pas d'une base de données. Au lieu de cela, parcourez vos réponses JSON après les avoir reçues et transmettez les données appropriées aux constructeurs d’objets appropriés.

Si vous devez absolument les sérialiser, appeler toString () sur une fonction retournera son source.

Si vous utilisez le framework WCF pour développer un service Web RESTful, vous pourrez le réaliser très facilement. Créez simplement vos classes de structure de données avec la collection souhaitée avec les attributs DataContract, DataMember.

[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;}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top