Ich möchte bestimmte Werte aus einer json Linie (cownumber, Gewicht, Größe) wie folgtAjax: verschachtelte Variablen aus json Linie ziehen
Die JSON schaut ziehen, wenn aus der URL zugegriffen Postman mit
{
"data": {
"attributes": {
"cownumber": "1234",
"weight": 300,
"height": 25
},
"type": "master_animal"
},
"links": {
"self": "/master_animal/1234"
}
}
ich eine Funktion verwenden, um die cownumber aus der URL
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
</script>
Dann mit dem cownumber zu extrahieren, mag ich die json Linie von einer anderen URL ziehen
<script type = "text/javascript">
$(document).ready(function(){
$('#load').click(function(){
var cownumber = getQueryVariable("cownumber")
$.ajax({
url: '/api/master_animal/'+cownumber,
data: {},
type: 'GET',
datatype : 'json',
success: function(data) {
var height = $(data['height']);
var weight = $(data['weight']);
$('#cownumber').val(cownumber);
$('#height').val(height);
$('#weight').val(weight);
console.log(data);
},
error: function(error) {
alert(JSON.stringify(error));
}
});
});
});
</script>
Auf meiner Website möchte ich die Nummer, das Gewicht und die Höhe anzeigen. Aber alles, was es anzeigt, ist die Cownumber (weil es diese Variable aus der Funktion getQueryVariable gezogen hat). Für Größe und Gewicht zeigt es „[Objekt object]“
Ich bin nicht sicher, ob das, was ist die beste Methode, um die erforderlichen Variablen aus der json Linie zu ziehen. Ich bin nicht einmal ganz davon überzeugt, dass die Funktion tatsächlich die JSON-Daten bekommt.
Die von Ihnen vorgeschlagenen Änderungen haben einen anderen Fehler verursacht. "TypeError abgefangen: Eigenschaft 'Attribute' von undefined nicht gelesen" –
@samueloyeleye, Dann ist Ihre JSON-Struktur nicht das, was Sie gepostet haben. 'console.log (data)', um Ihre 'data' Variable zu protokollieren und sicherzustellen, dass sie enthält, was Sie denken, dass es funktioniert –
Ich habe das Problem behoben, danke für Ihre Hilfe –