Estou criando um dataset customizado apartir de um retorno de uma API. Essa API esta construída em PHP. O seu retorno esta vindo no seguinte formato:
[{"codprof":"2359","nomeprof":"WENDEL CORTES MARTINS"}]
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;
}