1

Tengo este JSON

{
    "paises": [{
            "id_pais": "1",
            "pais": "Afganist\u00e1n"
        }, {
            "id_pais": "2",
            "pais": "Albania"
        }, {
            "id_pais": "3",
            "pais": "Alemania"
        }
    ]
}

Quiero acceder a las propiedades de cada objeto JSON con JQuery, como puedo hacer esto?

Tengo este código pero no funciona:

$(document).ready(function(){
    $.getJSON("localidad.json", function( data ) {


        $.each( data, function( key, val ) {
           console.log("key: " + key + " val: " + val[1]["paises"]["id_pais"]);
        });
    });
});
JackNavaRow
  • 6,836
  • 5
  • 22
  • 49
Jorge Alonso
  • 793
  • 1
  • 8
  • 24
  • [JSON no es un Objeto](https://es.stackoverflow.com/questions/164943/cu%c3%a1l-es-la-diferencia-entre-json-y-un-objeto-en-javascript) – JackNavaRow Jul 10 '19 at 20:30

2 Answers2

3
$(document).ready(function(){
    $.getJSON("localidad.json", function( data ) {


        $.each( data.paises, function( key, val ) {
           console.log("key: " + key + " val: " + val.id_pais + " " + val.pais);
        });
    });
});

Actualización filtro de impares:

$.getJSON("localidad.json", function( data ) {

    var impares = data.paises.filter(p => p.id_pais % 2 != 0);

        });

array filter js

Lobos
  • 14,463
  • 3
  • 9
  • 28
  • Me funciona, pero ahora tengo la siguiente duda si necesito pasar un parámetro para que solo me extraiga ciertos datos del json como por ejemplo los paises en los cuales el id_pais sea impar, se puede hacer esto?? – Jorge Alonso Jul 10 '19 at 19:20
  • 1
    Se puede, pero si quieres filtrar los datos te sugiero usar el método filter. Actualicé la respuesta para dejarte un ejemplo. – Lobos Jul 10 '19 at 19:43
0

Y que tal si recorres el contenido de la propiedad países en el each el cual es un array de objetos y así en cada iteración accedes a las propiedades de cada objeto, así:

var json = {
    "paises": [{
            "id_pais": "1",
            "pais": "Afganist\u00e1n"
        }, {
            "id_pais": "2",
            "pais": "Albania"
        }, {
            "id_pais": "3",
            "pais": "Alemania"
        }
    ]
}


$(document).ready(function(){
  $.each(json.paises, function(key, val) {
    console.log(val.id_pais + ' - ' + val.pais)
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Bender Paisa
  • 12,491
  • 4
  • 23
  • 41