2016-08-15 3 views
0

Ich nehme meine ersten Schritte in JSON.Graben Sie weiter in JSON

Es gibt eine riesige Datenbank, wo Sie alle Arten von Statistiken über mein Land abfragen können. Wie Bevölkerung http://px.hagstofa.is/pxen/pxweb/en

Nun, wenn Sie auf den Link oben sagen Bevölkerung surfen Sie am Ende hier oben: http://px.hagstofa.is/pxen/pxweb/en/Ibuar/Ibuar__mannfjoldi__1_yfirlit__arsfjordungstolur/MAN10001.px/?rxid=f4a21b41-fb7a-45dc-9aec-62ae2d3cea5c

Wenn Sie einige Optionen auswählen erhalten Sie hier: http://px.hagstofa.is/pxen/pxweb/en/Ibuar/Ibuar__mannfjoldi__1_yfirlit__arsfjordungstolur/MAN10001.px/table/tableViewLayout1/?rxid=f4a21b41-fb7a-45dc-9aec-62ae2d3cea5c

Klicken Sie auf die Tabellen- und dann auf "Diese Tabelle in Ihrer Anwendung verfügbar machen"

Jetzt sehen Sie eine URL für die Veröffentlichung auf JSON und die JSON-Abfrage ......

Ich habe jetzt für ein paar Stunden versucht, irgendwelche Daten von dieser URL zu bekommen, aber ich kann nicht scheinen, es auszugraben .

habe ich versucht, so etwas wie diese:

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title>JSON Tutorial</title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
</head> 

<body> 
    <script type="text/javascript"> 
     $.getJSON('http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px', function(data) { 
      console.log(data.variables) 
     }) 
    </script> 
</body> 
</html> 

die mir die nächsten Objekte gab .. Aber ich kann nicht herausfinden, wie man einige Statistiken erhalten .....

zum Beispiel: weibliche Bevölkerung in 2015

Jede Hilfe wird sehr benötigt.

EDIT: Nur wenige Stunden später im noch stecken, aber jetzt zu diesem Code im, up:

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title>JSON Tutorial</title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
</head> 

<body> 
    <script type="text/javascript"> 


     $.ajax({ 
      url: 'http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px', 
      dataType: 'json', 
      type: 'get', 
      cache: false, 
      success: function(data) { 
        $(data.variables).each(function(index, value) { 
        console.log(value.values.Alls + ' test ' + value.values); 
        document.write(value.values[0] + '<br>'); 
        }); 
       } 
     }); 

    </script> 
</body> 
</html> 

Mit freundlichen Grüßen

+0

Tearing meine Haare hier aus .... Im gerade nicht in der Lage die Daten zugreifen – Aron

Antwort

0

Die data.variables ist ein Array von vier Objekten. Jedes Objekt enthält vier Eigenschaften, darunter valueTexts und values. Sie müssen also eine erste Schleife für die erste Anordnung von vier Objekten, dann auf eine andere Schleife die valueTexts/values Paare finden:

$.getJSON('http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px', function(data) { 


    console.log (data.variables); 

    for(let i = 0; i < data.variables.length; i++){ 

    console.info(data.variables[i].text); 

    for(let k = 0; k < data.variables[i].valueTexts.length; k++){ 
     console.log(data.variables[i].valueTexts[k] + ' ' + data.variables[i].values[k]); 
    } 

    } 


}); 
+0

Hallo und vielen Dank für Ihre Antwort ... sehr hilfreich. Aber es gibt keine Ergebnisse .....Von meinem Verständnis, ich brauche diese Abfrage beispielsweise POST: '{ "Abfrage": [ { "Code": "Sveitarfélag", "Auswahl": { "Filter": "item", " Werte ": [ "All" ] } } ], "Antwort": { "Format": "px" } }' – Aron

+0

das ist seltsam, ich die Werte erhalten - https: // www.dropbox.com/s/6blm1loqbqt8q92/Screenshot%202016-08-16%2015.30.12.jpg?dl=0 – RRikesh

+0

Jetzt weiß ich nicht, welche Parameter Sie wünschen und wie Sie es – RRikesh

0

Nachfolgend finden Sie eine funktionierende Lösung für meine Frage:

Es ist wahrscheinlich ein besserer Weg, dies zu tun, aber ich brauchte eine Abfrage für den POST, und das gab mir Ergebnisse.

Jetzt muss ich nur diesen Code spucken die Ergebnisse in csv oder XML-Datei ausspucken. Wenn jemand eine Lösung dafür hat, wäre ich sehr dankbar.

<html lang="en"> 
<meta charset="utf-8"> 
<head> 
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 


</head> 


<script> 
     var query = { 
    "query": [ 
    { 
     "code": "Sveitarfélag", 
     "selection": { 
     "filter": "item", 
     "values": [ 
      "Alls" 
     ] 
     } 
    }, 
    { 
     "code": "Aldur", 
     "selection": { 
     "filter": "item", 
     "values": [ 
      "Alls" 
     ] 
     } 
    }, 
    { 
     "code": "Ár", 
     "selection": { 
     "filter": "item", 
     "values": [ 
      "18" 
     ] 
     } 
    }, 
    { 
     "code": "Kyn", 
     "selection": { 
     "filter": "item", 
     "values": [ 
      "Alls" 
     ] 
     } 
    } 
    ], 
    "response": { 
    "format": "csv" 
    } 
}; 
     query = JSON.stringify(query); 
     $.ajax({ 
       type: "POST", 
      url: "http://px.hagstofa.is/pxis/api/v1/is/Ibuar/mannfjoldi/2_byggdir/sveitarfelog/MAN02001.px", 
      data:query, 
      success: function(json) { 
       document.write(json); 
     } 
    }); 
</script> 
</html>