PDA

View Full Version : [JAVA] JSON: serializzare oggetti Java in oggetti js


duke2
12-12-2010, 11:36
Salve a tutti,
esiste una libreria in grado di serializzare oggetti JAVA direttamente come oggetti anziche in stringhe JSON, esempio, questo è quanto ottengo usando GSON

_20329073_YUI= YUI({"modules":[{"panel":[{"fullpath":"/JavaToJs/assets/Panel.js","requires":["substitute","widget","widgetparent","widgetchild","nodefocusmanager"]}]}]});

mentre questo é cio di cui ho bisogno:

_20329073_YUI= YUI({modules:
{"panel":{
fullpath:"/JavaToJs/assets/Panel.js",
requires:["substitute",
"widget",
"widgetparent",
"widgetchild",
"nodefocusmanager"]
}
}
});

wizard1993
12-12-2010, 20:12
le librerie xstream permettono la serializzazione in json
http://xstream.codehaus.org/
http://xstream.codehaus.org/faq.html

duke2
12-12-2010, 23:43
le librerie xstream permettono la serializzazione in json
http://xstream.codehaus.org/
http://xstream.codehaus.org/faq.html

ho dato un'occhiata... ammetto rapida... ma non ho trovato il modo ti ottenere stringe ti questo tipo
{attributo : "valore"}

ma solo
{"attributo" : "valore"}

se mi confermi che è possibile allora mi metto volentieri a studiare la documentazione

dad_89
13-12-2010, 03:53
A proposito di serializzazione... ma mi spiegate un pò a che serve effettivamente (un esempio concreto di teoria ne ho già abbastanza) perché non ho capito che utilità possa avere al livello pratico...

duke2
13-12-2010, 15:37
A proposito di serializzazione... ma mi spiegate un pò a che serve effettivamente (un esempio concreto di teoria ne ho già abbastanza) perché non ho capito che utilità possa avere al livello pratico...

Nel mio caso pratico ho una classe Javascript (YUI 3) che riceve un oggetto config al costruttore (YUI Attribute)e questo oggetto ha una struttura tipo:

"{name:'mio oggetto', value:'nomeOggetto'}

Lato server ho un oggetto speculare che mi restituisce una stringa tipo

"var miaIstanza=new "+this.id+"("+config+");";

l'oggetto config é un'istanza della classe Java Config che serializzata in JSON da una stringa tipo

{"name":"mio oggetto", "value":"nomeOggetto"}

quindi simile ma non esattamente conforme alle mie esigenze...

L'obbiettivo nel mio caso é poter parametrizzare lato server direttamente l'istanza dell oggetto client.

duke2
13-12-2010, 16:52
A chi dovesse interessare la risposta alla mia domanda sta qui

http://www.ahristov.com/myjson/

facile no ;)

dad_89
13-12-2010, 19:18
Nel mio caso pratico ho una classe Javascript (YUI 3) che riceve un oggetto config al costruttore (YUI Attribute)e questo oggetto ha una struttura tipo:

"{name:'mio oggetto', value:'nomeOggetto'}

Lato server ho un oggetto speculare che mi restituisce una stringa tipo

"var miaIstanza=new "+this.id+"("+config+");";

l'oggetto config é un'istanza della classe Java Config che serializzata in JSON da una stringa tipo

{"name":"mio oggetto", "value":"nomeOggetto"}

quindi simile ma non esattamente conforme alle mie esigenze...

L'obbiettivo nel mio caso é poter parametrizzare lato server direttamente l'istanza dell oggetto client.

Non mi sembra di aver capito...
Cioè grazie alla serializzazione di Config tu puoi accedere all'oggetto dalla tua classe senza però dover accedere direttamente alla classe?

Dico di non aver ben capito perché quello che ho detto a me sembra un'idiozia, cioè se serializzare vuol dire che rendo accessibile lo stream di dati della mia classe in questo caso potrei incorrere ad enormi problemi di sicurezza o sbaglio?

duke2
13-12-2010, 21:12
Non mi sembra di aver capito...
Cioè grazie alla serializzazione di Config tu puoi accedere all'oggetto dalla tua classe senza però dover accedere direttamente alla classe?

Dico di non aver ben capito perché quello che ho detto a me sembra un'idiozia, cioè se serializzare vuol dire che rendo accessibile lo stream di dati della mia classe in questo caso potrei incorrere ad enormi problemi di sicurezza o sbaglio?

Si... potresti... ma parlare di idiozia mi pare un po azzardato... o dalla mia descrizione tu sei gia in grado di capire il contesto?
Non ho parlato di ajax, il codice javascript lo scrivo serverside, anche... per una certa parte...serializando classi java e lo mando al client finito e quindi mi pare un'idiozia porsi il problema della sicurezza in tale contesto... non trovi? ;)

dad_89
14-12-2010, 13:20
Si... potresti... ma parlare di idiozia mi pare un po azzardato... o dalla mia descrizione tu sei gia in grado di capire il contesto?
Non ho parlato di ajax, il codice javascript lo scrivo serverside, anche... per una certa parte...serializando classi java e lo mando al client finito e quindi mi pare un'idiozia porsi il problema della sicurezza in tale contesto... non trovi? ;)
No scusami io non intendevo riguardo al tuo contesto ma in generale con un'applicazioni realizzata in java se riuscissi a capire come avviene la serializzazione dell'oggetto potrei riuscire a creare problemi...
Era questo ciò che intendevo perciò mi pareva strano che avessi capito quello che hai spiegato nel post precedente :D

duke2
15-12-2010, 13:16
No scusami io non intendevo riguardo al tuo contesto ma in generale con un'applicazioni realizzata in java se riuscissi a capire come avviene la serializzazione dell'oggetto potrei riuscire a creare problemi...
Era questo ciò che intendevo perciò mi pareva strano che avessi capito quello che hai spiegato nel post precedente :D

E´cosi... se io aveddi una servlet che risponde a chiamate ajax accettando offetti json, li serializzassi e li eseguissi senza nessun controllo sarebbe on po come girare andare a un gaypride senza pantaloni, bendato e ammanettato... un'ediozia per alcuni (me incluso)... un'esperienza per altri :ciapet: