Hej,
från en ASP.NET MVC actionmetod får jag tillbaka denna json:
[{"ID":1,"ArticleNr":"abc123","Description":"Min beskrivning","Price":1267.0000},
{"ID":2,"ArticleNr":"dfg456","Description":"Min andra beskrivning","Price":347.0000}]
$.getJSON("/admin/getproduct", { description: 'Min beskrivning' }, function (json) {
}
Hur gör i klientfunktionen sedan för att loopa detta resultat?
Det är ju en sorts array men jag inte t.ex. köra json.length.
Jag skulle helst vilja kunna skriva typ: alert("art nr:" + json.products[0].ArticleNr);
Har du tillgång till jQuery är det enkelt, t.ex.:
var foo = [{"ID":1,"ArticleNr":"abc123","Description":"Min beskrivning","Price":1267.0000},{"ID":2,"ArticleNr":"dfg456","Description":"Min andra beskrivning","Price":347.0000}];
for(var i=0; i <= foo.length-1; i++){
alert(foo[i]['ID'] + ": " + foo[i]['ArticleNr']);
}
Det här är alltså din kod ovan och jag har precis testat det och det fungerar :)
Och eftersom du redan kör med jQuery, kan du även använda each():
var foo = [{"ID":1,"ArticleNr":"abc123","Description":"Min beskrivning","Price":1267.0000},{"ID":2,"ArticleNr":"dfg456","Description":"Min andra beskrivning","Price":347.0000}];
$.each(foo, function(x,y){
alert(y.ArticleNr);
});
/R
Du kan ju även byta ut din $.getJSON mot det här:
$.ajax({
url: "/admin/getproduct",
type: "POST",
data: {
var1: foo,
var2: bar
},
dataType: "json",
success: function(data){
$.each(data.foo, function(x,y){
alert(y.ArticleNr);
});
}
});