Looping dataset json

A resposta JSON do método JSON.parse(vo.getResult()) do serviço que estou usando possui vários nós ou seja várias tabelas filhas, estou tentando criar uma lista com a tabela filha do json e ele so me retorna uma linha. Era pra retornar uma lista. Já seu parse o stringify e nada. Preciso gerar uma lista do Objeto ListaTema.

Estrutura exemplo: do retorno do json do web service.

for (var i = 0; i < json.length; i++) {

for (var j= 0; j <json.length; j++) { dataset.addRow([json[i].ListaTema[i]["CodAreaTematica"]]); } }


[{
"Nome":"Carlos",
"CodigoResp":122333
},
ListaTema:[
{"CodAreaTematica":2800,"
DescAreaTematica":"Empreendedorismo",
"CodSubTema":10302,
"DescSubTema":"Comportamento empreendedor"
},
{"CodAreaTematica":2400,
"DescAreaTematica":"Mercado e vendas",
"CodSubTema":10416,
"DescSubTema":"Relacionamentos com cliente - CRM"}
]
}];

Codigo do dataset:


function createDataset(fields, constraints, sortFields) {

    var dataset = DatasetBuilder.newDataset();
    var ID = 191440100639;

    var cont;
    var filtro;

    try {
        var clientService = fluigAPI.getAuthorizeClientService();

        var data = {
            companyId: getValue("WKCompany") + '',
            serviceCode: 'produtosws',

            //endpoint: '/Portfolio/Consultar?ID='+ID+'',
          endpoint: '/Portfolio/Consultar?ID=191440100639',
            method: 'get'
        }
        var vo = clientService.invoke(JSON.stringify(data));
        log.info("vo PORTFOLIO >>>  " + vo);


        if (vo.getResult() == null || vo.getResult().isEmpty()) {
            //throw new Exception("Retorno está vazio");//
        } else {
            log.info("PORTFOLIO >> getResult()  " + vo.getResult());

            dataset.addColumn("CodAreaTematica");
            dataset.addColumn("DescAreaTematica");
            dataset.addColumn("CodSubTema");
            dataset.addColumn("DescSubTema");



            var resultado = JSON.parse(vo.getResult());
           if ((resultado.ListaTema != null) && (resultado.ListaTema != undefined)){
                for (item in resultado.ListaTema){
                    dataset.addRow(new Array([
                                item.CodAreaTematica,
                                item.DescAreaTematica,
                                item.CodSubTema,
                                item.DescSubTema
                            ])); // addRow
                } // for
         } // if


        }

    } catch (err) {
        //throw new Exception(err);
              log.info("ERROR >>" + err);
          //  dataset.addColumn("MESSAGE_ERROR");
           // dataset.addRow(new Array(-1, err, "-", "-", "VAZIO"));

    }

    return dataset;
}

Response JSON no Stringify:


{
   "ID":191440100639,
   "CodSebraeResponsavel":19,
   "Versao":1,
   "Nome":"Atendimento ao cliente",
   "CategoriaServicoID":1,
   "CategoriaServicoNome":"Sensibilização",
   "ModalidadeID":2,
   "ModalidadeNome":"Presencial",
   "AlvoID":2,
   "AlvoNome":"Empresário",
   "UnidadeOrganizacionalOrigemID":null,
   "UnidadeOrganizacionalOrigemNome":null,
   "GestorProdutoOrigemID":324084154,
   "GestorProdutoOrigemNome":"JOAO DA SILVA",
   "DataHabilitacao":"2019-07-02T16:56:30.37",
   "ComplexidadeProdutoID":2,
   "ComplexidadeProdutoNome":"Intermediário",
   "ComplexidadeMetodologiaID":null,
   "ComplexidadeMetodologiaNome":null,
   "MinimoParticipante":null,
   "MaximoParticipante":null,
   "CargaHoraria":2,
   "Certificado":"1",
   "PrecoSugerido":null,
   "Preco":0,
   "ArgumentoVenda":"Atendimento ao cliente",
   "Tag":"atendimento;cliente",
   "Observacao":null,
   "DataVigencia":null,
   "Ativo":1,
   "SituacaoID":4,
   "SituacaoNome":"Disponível",
   "Descricao":"Sensibilizar os participantes para o atendimento profissional, com foco nas expectativas e necessidades dos clientes",
   "ParceiroOrigem":"0",
   "NomeParceiro":null,
   "DataProximaRevisao":null,
   "MetodologiaID":1,
   "MetodologiaNome":"Aberta",
   "FrequenciaMinima":null,
   "NotaMinima":null,
   "RegistroIsbnIssn":null,
   "CodigoRegistroMarca":null,
   "DataValidadeRegistroMarca":null,
   "ClasseSubClasseMarca":null,
   "CustoDesenvolvimento":null,
   "CustoOperacionalizacao":1308,
   "DisponivelPiloto":0,
   "CertificadoID":191,
   "ProdutoIntencao":1,
   "DataUltimaAlteracao":"2019-07-18T00:00:00",
   "ListaTipoServico":[
      {
         "TipoServicoID":24,
         "TipoServicoNome":"Palestra"
      }
   ],
   "ListaTema":[
      {
         "CodAreaTematica":2800,
         "DescAreaTematica":"Empreendedorismo",
         "CodSubTema":10302,
         "DescSubTema":"Comportamento empreendedor"
      },
      {
         "CodAreaTematica":2400,
         "DescAreaTematica":"Mercado e vendas",
         "CodSubTema":10416,
         "DescSubTema":"Relacionamentos com cliente - CRM"
      }
   ],
   "ListaSebraeCesta":[

   ],
   "ListaMicromomento":[

   ]
}
]

Experimenta assim:



var resultado = JSON.parse(vo.getResult());
if ((resultado.ListaTema != null) && (resultado.ListaTema != undefined)){
    for each(item in resultado.ListaTema){
        dataset.addRow(new Array(
                    item.CAMPO_A,
                    item.CAMPO_B,
                    item.CAMPO_C
                )); // addRow
    } // for
} // if

Código corrigido


function createDataset(fields, constraints, sortFields) {
    var dataset = DatasetBuilder.newDataset();
    try {
        dataset.addColumn("CodAreaTematica");
        dataset.addColumn("DescAreaTematica");
        dataset.addColumn("CodSubTema");
        dataset.addColumn("DescSubTema");
        var jsonStr = '[{"ID":191440100639,"CodSebraeResponsavel":19,"Versao":1,"Nome":"Atendimento ao cliente","CategoriaServicoID":1,"CategoriaServicoNome":"Sensibilização","ModalidadeID":2,"ModalidadeNome":"Presencial","AlvoID":2,"AlvoNome":"Empresário","UnidadeOrganizacionalOrigemID":null,"UnidadeOrganizacionalOrigemNome":null,"GestorProdutoOrigemID":324084154,"GestorProdutoOrigemNome":"JOAO DA SILVA","DataHabilitacao":"2019-07-02T16:56:30.37","ComplexidadeProdutoID":2,"ComplexidadeProdutoNome":"Intermediário","ComplexidadeMetodologiaID":null,"ComplexidadeMetodologiaNome":null,"MinimoParticipante":null,"MaximoParticipante":null,"CargaHoraria":2,"Certificado":"1","PrecoSugerido":null,"Preco":0,"ArgumentoVenda":"Atendimento ao cliente","Tag":"atendimento;cliente","Observacao":null,"DataVigencia":null,"Ativo":1,"SituacaoID":4,"SituacaoNome":"Disponível","Descricao":"Sensibilizar os participantes para o atendimento profissional, com foco nas expectativas e necessidades dos clientes","ParceiroOrigem":"0","NomeParceiro":null,"DataProximaRevisao":null,"MetodologiaID":1,"MetodologiaNome":"Aberta","FrequenciaMinima":null,"NotaMinima":null,"RegistroIsbnIssn":null,"CodigoRegistroMarca":null,"DataValidadeRegistroMarca":null,"ClasseSubClasseMarca":null,"CustoDesenvolvimento":null,"CustoOperacionalizacao":1308,"DisponivelPiloto":0,"CertificadoID":191,"ProdutoIntencao":1,"DataUltimaAlteracao":"2019-07-18T00:00:00","ListaTipoServico":[{"TipoServicoID":24,"TipoServicoNome":"Palestra"}],"ListaTema":[{"CodAreaTematica":2800,"DescAreaTematica":"Empreendedorismo","CodSubTema":10302,"DescSubTema":"Comportamento empreendedor"},{"CodAreaTematica":2400,"DescAreaTematica":"Mercado e vendas","CodSubTema":10416,"DescSubTema":"Relacionamentos com cliente - CRM"}],"ListaSebraeCesta":[],"ListaMicromomento":[]}]';
        var resultado = JSON.parse(jsonStr);
        if (resultado.length > 0){
            var root = resultado[0];
            var listaTema = root.ListaTema;
            for each(item in listaTema){
              dataset.addRow(new Array(
                  item.CodAreaTematica,
                  item.DescAreaTematica,
                  item.CodSubTema,
                  item.DescSubTema
              ));
            } // for
        } // if
    } catch (err) {
      log.info("ERROR >>" + err);
    }
    return dataset;
}

Retornou vazio:( não retornou nada.

coloca teu código aqui pra gente poder ve

certo vou colar o codigo

Coloquei o codigo

vou colocar o response do JSON como ele é quando coloco no log no stringify

perfeito. na minha resposta coloquei o código corrigido.

Devolveu 2 linhas e as 4 colunas porém preenchida com undefined.

Ele conseguiu trazer a quantidade de linhas sao 2 linhas, mas os nomes dos objetos acho que ele nao encontrou devido algum parametro nao no for ?

deu certo era só o for each.