Erro JSON.parse

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;
}
compartilhar
  • 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

    Diogo Boegershausen   19 de Dec de 2019
  • Tentei.. mas o erro continua

    Laísa Cardoso   19 de Dec de 2019
  • É no parse mesmo que da o erro? Pq como é um array vc acessaria com json[0].codprof

    Diogo Boegershausen   19 de Dec de 2019
  • É 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

    Laísa Cardoso   19 de Dec de 2019
  • Podes colocar dataset.addRow([err.message, '']); no lugar do throw que tem no catch pra vrmos qual a excessao que ele está lançando?

    Diogo Boegershausen   19 de Dec de 2019
Mostrar todos os 8 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags datasets-customizado dataset api php javascript json fluig ou faça a sua própria pergunta.