Converter String java em JSON javascript

Oi gente,

estou precisando resolver um problema que é o seguinte:

Tenho um método no java que retorna uma String no formato JSON, esse método é chamado num oncomplete de um evento de um botão do JSF, daí quando passo esse retorno para o javascript ele não consegue converter para um objeto JSON:

public String perfilJSON() {

  // Aqui retorna no formato JSON certinho.
  return convertePerfilJSON(usuario);
  
}

Na minha página tenho o seguinte:

...
<a4j:commandButton  action="#{login.logar}" oncomplete="loadPerfil(#{control.perfilJSON})" />
...

No meu javascript tenho a função loadPerfil:

function loadPerfil(perfil) {

   //Aqui está o problema, o "perfil" chega como Object e não consigo converter ele pra um JSON
   //Como faço pra que esse parâmetro perfil seja entendido como texto no javascript ??

  var perfilUsuario =  JSON.parse(perfil);

}

O meu problema está no momento de converter o “perfil” (que foi a String vinda do java num formato JSON) dentro da função “loadPerfil”, ele não entende como texto o JSON.

Alguém pode me auxiliar nesse problema?

Tentei a alteração abaixo e também não funcionou, qualquer ajuda será bem vinda.


function loadPerfil(perfil) {   
  
   //Aqui está o problema, o "perfil" chega como Object e não consigo converter ele pra um JSON   
  
  var perfilUsuario =  JSON.parse(perfil + "");   
  
  // Tentei adicionar "" para que o javascript fizesse a conversão para string, não funcionou.

}  

Já tento da um alert no retorno

alert(’-’+perfil+’-’);

coloca os - pra ver se não esta vindo quebra de linha, caracteres invisiveis , …
valida o retorno em http://jsonlint.com/

n sei se tu usa o firefox com fire bug, pode ativar a aba rede e pegar o retorno nela …

eu uso o jquery com o plugin http://code.google.com/p/jquery-json/

mas se for valido vc pode usar eval

function loadPerfil(perfil) {   
  var perfilUsuario =  JSON.parse("(" + perfil + ")");   

}  

(http://www.json.org/js.html)