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.