SERIALIZAR CLASSE

GANDA.NICK 21/10/2014 16:04:14
#442071
A classe pessoa tem as propriedades [Ô]nome[Ô] e [Ô]idade[Ô], consigo [Ô]deserializar[Ô] se for só um objecto... mas uma list não consigo

            Dim p1 As Pessoa = New Pessoa([Ô]Rita[Ô], 30)
Dim p2 As Pessoa = New Pessoa([Ô]Laura[Ô], 26)

Dim pessoas As New List(Of Pessoa)
pessoas.Add(p1)
pessoas.Add(p2)

Dim json As New JavascriptSerializer
Dim jsonOut As String = json.Serialize(pessoas)

MsgBox(jsonOut)

[ô]Dim pessoas_Nova_Lista As New List(Of Pessoa)


Como posso [Ô]deserializar[Ô] logo essa string jsonOut directamente para a list pessoas_Nova_Lista, ou um arraylist ou qualquer para ter acesso aos dados...


E se quisesse [Ô]serializar[Ô] e [Ô]deserializar[Ô] duas List[ô]s (sendo de classes diferentes) como deveria fazer (não tem o nome da classe na string jsonOut)... procurei na net... mas achei muito mais info para c# do que para vb.net

Obrigado
LENDAURBANA 21/10/2014 16:11:21
#442072
Resposta escolhida
Vai ficar algo assim , uso no C#

string[] objSaida = jsonSerializer.Deserialize<string[]>(SaidaArray);

Da uma lida aqui tem bons exemplos disto inclusive o que você precisa

http://msdn.microsoft.com/pt-br/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx
GANDA.NICK 21/10/2014 16:51:34
#442074
Obrigado, ajudou muito...

consegui passar para array e para list


        Dim objSaida() As Pessoa = json.Deserialize(Of Pessoa())(jsonOut)
MsgBox(objSaida(1).nome)
Dim pessoas_Nova_Lista = json.Deserialize(Of List(Of Pessoa))(jsonOut)
MsgBox(pessoas_Nova_Lista(1).nome)


Tem ideia quanto à segunda parte da minha questão.. se quisser passar duas classes diferentes como seria?

na parta da serialização imagino que teria que usar um arraylist que permite varios tipos de objectos na mesma coleção e para [Ô]deserializar[Ô] não faço ideia de como fazer...



Tópico encerrado , respostas não são mais permitidas