hehehe... eu tava pensando justamente nisso... postei agorinha uma dúvida sobre isso... é uma boa prática passar no json o tipo do objeto?
Em 15 de abril de 2013 11:02, Gustavo Martinez <g...@ufrj.br> escreveu: > Wemerson, vc pode fazer o seguinte. > > Passe esse novo JSON com "type" e "data"; > > depois: > var objeto:Object = JSON.parse( e.result.toString() ); > var u:UsuarioVO = new UsuarioVO ( objeto ); > > No construtor: > > public UsuarioVO ( objeto:Object=null ) > { > super( objeto ) > } > > No construtor da classe pai de todos os VOs > > if ( objeto["type"] == getQualifiedClassName( this ) ) > { > for (var p:String in objeto) { > this[p] = objeto[p]; > } > } > else > throw new Error( "Objeto de classe errada: "+objeto["type"]+" ao invés > de "+getQualifiedClassName( this )+"!" ); > > > > Abrs > > *-- > Gustavo Martinez* > > > 2013/4/15 Wemerson Couto Guimarães <wemerso...@gmail.com> > >> Certo, estou criando aqui.. valeu pela dica! >> >> Um detalhe... como o retorno é em json, não vou conseguir tipar os dados >> correto?, então a solução é criar um campo no json que me diz que tipo de >> retorno é... um exemplo seria mudar de: >> >> {"id":999,"nome":"Wemerson Couto Guimaraes","email":"wemerso...@gmail.com >> "} >> >> para >> >> { >> "type":"UsuarioVO", >> "data":{ >> "id":999, >> "nome":"Wemerson Couto Guimaraes", >> "email":"wemerso...@gmail.com" >> } >> } >> >> >> e então fazer somente: var u:UsuarioVO = >> ValueObjectTransformer.transform(e.result); >> e dentro da função tratar o tipo retornado... aconselha isso? >> >> >> >> Em 15 de abril de 2013 10:04, Fredy Gadotti >> <fredy.gado...@gmail.com>escreveu: >> >> Cria uma classe utilitária que faz a conversão do objeto para você; >>> Caminho das pedras: >>> http://livedocs.adobe.com/flex/3/html/help.html?content=usingas_8.html >>> >>> Se você sabe que precisa que seja transformado em um UsuarioVO, você >>> passa a classe como parâmetro. >>> >>> Exemplo: >>> >>> var u:UsuarioVO = ValueObjectTransformer.transform(e.result, UsuarioVO); >>> >>> A implementação dessa classe (assim como o nome, ficaria a seu critério). >>> >>> Abraço, >>> >>> Fredy >>> >>> >>> >>> 2013/4/15 Wemerson Couto Guimarães <wemerso...@gmail.com> >>> >>>> Já tentei usar ObjectUtil.copy() também, mas não funcionou >>>> >>>> >>>> Em 15 de abril de 2013 09:10, Wemerson Couto Guimarães < >>>> wemerso...@gmail.com> escreveu: >>>> >>>> Bom dia Fredy, o JSON retornado é simples.. veja um exemplo: >>>>> >>>>> trace(e.result); // {"id":999,"nome":"Wemerson Couto >>>>> Guimaraes","email":"wemerso...@gmail.com"} >>>>> >>>>> var usuario:UsuarioVO = JSON.parse( e.result.toString() ) as UsuarioVO; >>>>> trace( usuario ); // null >>>>> >>>>> var objeto:Object = JSON.parse( e.result.toString() ); >>>>> trace( objeto ); // [object Object] >>>>> trace( objeto.nome ); // Wemerson Couto Guimaraes >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Em 15 de abril de 2013 08:55, Fredy Gadotti >>>>> <fredy.gado...@gmail.com>escreveu: >>>>> >>>>> A sua String JSON diz pelo menos qual é a classe que ela deve ser >>>>>> convertida? >>>>>> Que se disser, você pode criar uma classe de proxy para instanciar >>>>>> dinamicamente a classe e atribuir os valores utilizando introspection sem >>>>>> precisar fazer isso manualmente para cada método. >>>>>> >>>>>> Se senão falar qual é o objeto, a opção é também utilizar >>>>>> introspection só que você precisaria passar como argumento qual é o tipo >>>>>> de >>>>>> objeto que você quer realizar a conversão em cada resultado de chamada >>>>>> remota. >>>>>> >>>>>> Espero que tenha sido claro. >>>>>> >>>>>> Abraço, >>>>>> >>>>>> Fredy >>>>>> >>>>>> >>>>>> 2013/4/15 Wemerson Couto Guimarães <wemerso...@gmail.com> >>>>>> >>>>>>> Bom dia pessoal. >>>>>>> >>>>>>> Usei várias libs pra tratar JSON, e em todas o problema é o mesmo: >>>>>>> Consigo converter o json para um objeto declarado do tipo "Object", >>>>>>> porém >>>>>>> não consigo converter para uma classe VO. Como vocês tratam isso? >>>>>>> >>>>>>> Tentei várias libs como por exemplo a as3corelib e agora estou >>>>>>> usando o suporte a JSON presente no *playerglobal.swc*, e a >>>>>>> situação é sempre a mesma que mencionei acima. >>>>>>> >>>>>>> Detalhe: Não dá pra ser diferente porque os dados vêm de um serviço >>>>>>> REST que acesso via HTTPServices... >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Wemerson Guimarães >>>>>>> Rio Verde - Go - Brasil >>>>>>> >>>>>>> -- >>>>>>> -- >>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>>>>> Para enviar uma mensagem, envie um e-mail para >>>>>>> flexdev@googlegroups.com >>>>>>> Para sair da lista, envie um email em branco para >>>>>>> flexdev-unsubscr...@googlegroups.com >>>>>>> Mais opções estão disponíveis em >>>>>>> http://groups.google.com/group/flexdev >>>>>>> --- >>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>>>>> "flexdev" dos Grupos do Google. >>>>>>> Para cancelar a inscrição neste grupo e parar de receber seus >>>>>>> e-mails, envie um e-mail para flexdev+unsubscr...@googlegroups.com. >>>>>>> Para obter mais opções, acesse >>>>>>> https://groups.google.com/groups/opt_out. >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> -- >>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>>>> Para enviar uma mensagem, envie um e-mail para >>>>>> flexdev@googlegroups.com >>>>>> Para sair da lista, envie um email em branco para >>>>>> flexdev-unsubscr...@googlegroups.com >>>>>> Mais opções estão disponíveis em >>>>>> http://groups.google.com/group/flexdev >>>>>> --- >>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>>>> "flexdev" dos Grupos do Google. >>>>>> Para cancelar a inscrição neste grupo e parar de receber seus >>>>>> e-mails, envie um e-mail para flexdev+unsubscr...@googlegroups.com. >>>>>> Para obter mais opções, acesse >>>>>> https://groups.google.com/groups/opt_out. >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Wemerson Guimarães >>>>> Rio Verde - Go - Brasil >>>>> >>>> >>>> >>>> >>>> -- >>>> Wemerson Guimarães >>>> Rio Verde - Go - Brasil >>>> >>>> -- >>>> -- >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >>>> Para sair da lista, envie um email em branco para >>>> flexdev-unsubscr...@googlegroups.com >>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>>> --- >>>> Você está recebendo esta mensagem porque se inscreveu no grupo >>>> "flexdev" dos Grupos do Google. >>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, >>>> envie um e-mail para flexdev+unsubscr...@googlegroups.com. >>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out >>>> . >>>> >>>> >>>> >>> >>> -- >>> -- >>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >>> Para sair da lista, envie um email em branco para >>> flexdev-unsubscr...@googlegroups.com >>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>> --- >>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" >>> dos Grupos do Google. >>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, >>> envie um e-mail para flexdev+unsubscr...@googlegroups.com. >>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> >> >> -- >> Wemerson Guimarães >> Rio Verde - Go - Brasil >> >> -- >> -- >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >> Para sair da lista, envie um email em branco para >> flexdev-unsubscr...@googlegroups.com >> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >> --- >> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" >> dos Grupos do Google. >> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, >> envie um e-mail para flexdev+unsubscr...@googlegroups.com. >> Para obter mais opções, acesse https://groups.google.com/groups/opt_out. >> >> >> > > -- > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > Para sair da lista, envie um email em branco para > flexdev-unsubscr...@googlegroups.com > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > --- > Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" > dos Grupos do Google. > Para cancelar a inscrição neste grupo e parar de receber seus e-mails, > envie um e-mail para flexdev+unsubscr...@googlegroups.com. > Para obter mais opções, acesse https://groups.google.com/groups/opt_out. > > > -- Wemerson Guimarães Rio Verde - Go - Brasil -- -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev --- Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos Grupos do Google. Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para flexdev+unsubscr...@googlegroups.com. Para obter mais opções, acesse https://groups.google.com/groups/opt_out.