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":"[email protected]"}
para
{
"type":"UsuarioVO",
"data":{
"id":999,
"nome":"Wemerson Couto Guimaraes",
"email":"[email protected]"
}
}
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 <[email protected]>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 <[email protected]>
>
>> Já tentei usar ObjectUtil.copy() também, mas não funcionou
>>
>>
>> Em 15 de abril de 2013 09:10, Wemerson Couto Guimarães <
>> [email protected]> escreveu:
>>
>> Bom dia Fredy, o JSON retornado é simples.. veja um exemplo:
>>>
>>> trace(e.result); // {"id":999,"nome":"Wemerson Couto Guimaraes","email":"
>>> [email protected]"}
>>>
>>> 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
>>> <[email protected]>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 <[email protected]>
>>>>
>>>>> 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
>>>>> [email protected]
>>>>> Para sair da lista, envie um email em branco para
>>>>> [email protected]
>>>>> 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 [email protected].
>>>>> 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 [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> 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 [email protected].
>>>> 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 [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> 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 [email protected].
>> 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 [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> 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 [email protected].
> 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 [email protected]
Para sair da lista, envie um email em branco para
[email protected]
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 [email protected].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.