webForumDet fria alternativet

Hur loopa json resultat

3 svar · 968 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

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);

MickeA.comMedlem sedan feb. 20034 441 inlägg
#2

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 :)

MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

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);						
		});		
	}
});
doggelitoMedlem sedan juni 20003 076 inlägg
#4

Kalas Micke! :bire

127 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)