Domanda

Sto cercando un miglioramento a JSON che serializzi anche i metodi. Ho un oggetto che funge da raccolta di oggetti e vorrei serializzare anche i metodi dell'oggetto di raccolta. Finora ho individuato ClassyJSON . Qualche pensiero?

È stato utile?

Soluzione

Non credo che i metodi di serializzazione siano mai una buona idea. Se intendi eseguire il code server sul lato, ti apri agli attacchi. Se vuoi eseguirlo sul lato client, stai meglio solo con i metodi locali, facendo eventualmente riferimento al nome del metodo che userai negli oggetti serializzati.

Credo comunque che " f = " + function () {} ti darà una versione a stringa che puoi valutare:

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

E per una buona gestione di json, consiglierei il prototipo, che ha ottimi metodi per serializzare gli oggetti su json.

Altri suggerimenti

Prova a scappare senza serializzare il codice javascript. In questo modo si trova un mondo di dolore. Il debug sarà molto più semplice se il codice può provenire solo da file statici, non da un database. Invece, segui le tue risposte JSON dopo averle ricevute e passa i dati appropriati ai costruttori di oggetti appropriati.

Se devi assolutamente serializzarli, chiamare toString () su una funzione restituirà la sua fonte.

Se si utilizza il framework WCF per sviluppare il servizio Web RESTful, è molto facile da ottenere. È sufficiente creare le classi della struttura dei dati con la raccolta desiderata con gli attributi 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;}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top