extract data from a json

Asked

Viewed 504 times

1

I got the following JSON:

[{
"ItensReceitaModel": [{
    "t0081_id_receita_itens": 1,
    "t0081_lote": "1233"        
}, {
    "t0081_id_receita_itens": 2,
    "t0081_lote": "123"
}],
"PacienteModel": {
    "t0031_id_pessoa": 1,
    "t0031_tipo_pessoa": "cliente",     
},
"PrescritorModel": {
    "t0031_id_pessoa": 29,
    "t0031_tipo_pessoa": "prescritor",      
},
"t0080_id_receita": 1,
"t0080_tipo_receita": "Receita Branca"
}, {
"ItensReceitaModel": [{
    "t0081_id_receita_itens": 3,
    "t0081_lote": "qqq"
}, {
    "t0081_id_receita_itens": 4,
    "t0081_lote": "3123"
}, {
    "t0081_id_receita_itens": 5,
    "t0081_lote": "12321",
    "t0081_qtde": 1
}],
"PacienteModel": {
    "t0031_id_pessoa": 1,
    "t0031_tipo_pessoa": "cliente"
},
"PrescritorModel": {
    "t0031_id_pessoa": 28,
    "t0031_tipo_pessoa": "prescritor"
},
"t0080_id_receita": 2,
"t0080_tipo_receita": "Receita Branca"
}, {
"ItensReceitaModel": [{
    "t0081_id_receita_itens": 6,
    "t0081_lote": "123"
}],
"PacienteModel": {
    "t0031_id_pessoa": 1,
    "t0031_tipo_pessoa": "cliente",
},
"PrescritorModel": {
    "t0031_id_pessoa": 29,
    "t0031_tipo_pessoa": "prescritor"
},
"t0080_id_receita": 3,
"t0080_tipo_receita": "Receita Branca"
}]

and I need to create a array only with ItensReceitaModel, how can I do this?

1 answer

1


I did a key reading process and if it is confirmed that it exists it is read to the $scope.ItensReceitaModel = []; creating a array of information.

Code for creating the new array:

$scope.ItensReceitaModel = [];
$scope.load = function() {
  for (var i = 0; i < $scope.items.length; i++) 
  {
    for (var j = 0; j < $scope.items[i].ItensReceitaModel.length; j++) 
    {
       $scope.ItensReceitaModel.push($scope.items[i].ItensReceitaModel[j]);
    }
  }
}
$scope.load();

Complete code:

var app = angular.module('app', []);
app.controller('ctrl', ['$scope',
  function($scope) {
    $scope.items = [{
      "ItensReceitaModel": [{
        "t0081_id_receita_itens": 1,
        "t0081_lote": "1233"
      }, {
        "t0081_id_receita_itens": 2,
        "t0081_lote": "123"
      }],
      "PacienteModel": {
        "t0031_id_pessoa": 1,
        "t0031_tipo_pessoa": "cliente",
      },
      "PrescritorModel": {
        "t0031_id_pessoa": 29,
        "t0031_tipo_pessoa": "prescritor",
      },
      "t0080_id_receita": 1,
      "t0080_tipo_receita": "Receita Branca"
    }, {
      "ItensReceitaModel": [{
        "t0081_id_receita_itens": 3,
        "t0081_lote": "qqq"
      }, {
        "t0081_id_receita_itens": 4,
        "t0081_lote": "3123"
      }, {
        "t0081_id_receita_itens": 5,
        "t0081_lote": "12321",
        "t0081_qtde": 1
      }],
      "PacienteModel": {
        "t0031_id_pessoa": 1,
        "t0031_tipo_pessoa": "cliente"
      },
      "PrescritorModel": {
        "t0031_id_pessoa": 28,
        "t0031_tipo_pessoa": "prescritor"
      },
      "t0080_id_receita": 2,
      "t0080_tipo_receita": "Receita Branca"
    }, {
      "ItensReceitaModel": [{
        "t0081_id_receita_itens": 6,
        "t0081_lote": "123"
      }],
      "PacienteModel": {
        "t0031_id_pessoa": 1,
        "t0031_tipo_pessoa": "cliente",
      },
      "PrescritorModel": {
        "t0031_id_pessoa": 29,
        "t0031_tipo_pessoa": "prescritor"
      },
      "t0080_id_receita": 3,
      "t0080_tipo_receita": "Receita Branca"
    }];

    $scope.ItensReceitaModel = [];

    $scope.load = function() {
      for (var i = 0; i < $scope.items.length; i++) 
      {
        for (var j = 0; j < $scope.items[i].ItensReceitaModel.length; j++) 
        {
           $scope.ItensReceitaModel.push($scope.items[i].ItensReceitaModel[j]);
        }
      }
    }
    $scope.load();
  }
]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="ctrl">
  <div ng-repeat="it in ItensReceitaModel">
    {{it.t0081_id_receita_itens}} - {{it.t0081_lote}} - {{it.t0081_qtde || 0}}
  </div>
</div>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.