Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criação de objetos em JavaScript a partir de json

Bom dia, amigos! Alguém pode me ajudar? Estou recebendo uma lista de objetos do back-end em Java e preciso tratá-la no front em JavaScript. Pretendo criar uma outra lista de objetos do tipo Operacao, mas não estou conseguindo. Estou tentando fazer o seguinte:

LISTA JSON {"operacao":{"numero":"333", "valor":"1.252,52", "fund":{"nome":"Fundo 1", "codigo":"123"}}.

Recebendo o json do back (response.data)

let $scope.listaOperacoes = [];

response.data.forEach((item) => {$scope.listaOperacoes.push(new Operacao(item))} // ERRO undefined.

class Operacao {
    constructor(json){
        if(json != undefined) {
            this.numero = json.numero;
             this.valor = json.valor;
            this.nome = json.nome;   // nome é um atributo da classe Fundo.
            this.codigo = json.codigo;   // código é um atributo da classe Fundo.

        }

    }

}
class Fund {
    constructor(json){
        if(json != undefined) {
            this.nome = json.nome;
             this.codigo = json.codigo;
        }
    }

}

Por que não consigo criar um objeto Operação? Como faço para referenciar os dados do json nome e código como sendo do tipo Fund?

1 resposta
solução!

Consegui resolver. Alterei a classe Operação para:

class Operacao {
    constructor(json){
        if(json != undefined) {
            this.numero = json.numero;
             this.valor = json.valor;
            this.nome = json.fund.nome; 
            this.codigo = json.fund.codigo; 

        }

    }

}

O json também precisa ser alterado para:

json = [{"numero":"333", "valor":"1.252,52", "fund":{"nome":"Fundo 1", "codigo":"123"}}];