Quando eu dou um log.dir dentro do Fluig o retorno aparece assim:
"[{\"codprof\":\"2359\",\"nomeprof\":\"WENDEL CORTES MARTINS\"}]" (não sei porque)
Sendo assim eu não estou conseguindo pegar o valor que eu preciso como por exemplo:
json.codprof ou json["codprof"]
se eu tento da um JSON.parse da erro.
Alguém por favor pode me dar uma luz.
Código Completo:
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
try{
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId : getValue("WKCompany") + '',
serviceCode : 'APIRM',
endpoint : '/getProf/?cpf=xxxxxxxxxxxx',
method : 'get',
}
var vo = clientService.invoke(JSON.stringify(data));
log.info('dataset vo:' + vo.getResult());
log.dir(vo.getResult());
if(vo.getResult()== null || vo.getResult().isEmpty()){
throw new Exception("Retorno está vazio");
}else{
dataset.addColumn("codprof");
dataset.addColumn("nomeprof");
var json = vo.getResult();
log.info('dataset json: ' + json);
log.dir(json);
json = JSON.parse(json); // Da erro
dataset.addRow([json.codprof, json.nomeprof]);
}
} catch(err) {
throw new Exception(err);
}
return dataset;
}
Qual o Content-Type da resposta? É application/json mesmo? Tente passar headers: { Accept: 'application/json' } no data da sua request para ver se muda alguma coisa
É assim: quando eu coloco JSON.parse da o seguinte erro no dataset: Erro ao recuperar dados do dataset: Retorno de dataset inválido, verifique sua implementação.
Se o eu tiro o JSON.parse não da erro, só que o retorno da dataset fica com o valor: undefined
Fiz conforme disse: o que apareceu foi: SyntaxError: Unexpected token:
Coloquei também um log.dir e no arquivo do log apareceu o seguinte erro: default task-32) No serializer found for class sun.org.mozilla.javascript.internal.UniqueTag and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: sun.org.mozilla.javascript.internal.NativeError[“prototype”]->sun.org.mozilla.javascript.internal.NativeError[“stack”])
Já tive um problema com isto. O retorno vindo do PHP já não veio com json.encode? Se for usado o json encode no php, ele não precisa ser tratado com o JSON.parse. (Estou falando de memória, não estou com o código Javascript com que eu resolvi isto)
Sim. Vem com json encode do PHP, mas eu não sei porque quando eu uso sem JSON.parse o valor da undefined, não mostra os resultado que eu preciso entende. Por isso eu estou tentando usar o JSON.parse para ver se os resultados aparecem, mas colocando JSON.parse da erro. Sem JSON.parse não da erro, mas também não mostra o conteúdo da váriavel
Olá Janilson! Consegui sim… era um problema com a minha API que é em PHP. A mesma esta vindo com um carácter, que ainda não localizei. Tipo deve ter um echo em algum lugar que esta atrapalhando o envio das informações. A API é feita em codeIgniter e será necessário uma revisão para correção. Por hora tratamos os dados retirando esse carácter assim: stringDados = stringDados.substr(1,stringDados.length());