JSON aus POST-Requests mittels Jquery

Gerade eben bin ich bei der Überarbeitung meines O2 Traffic Kalkulators auf ein interessantes Problem im Zusammenhang mit Jquery gestoßen. Ich sende die Daten aus dem Formular mittels eines POST-Requests an den Server, der mir derzeit einen einfachen String zurück gibt. Für die graphische Verarbeitung benötige ich jedoch die Trafficdaten der einzelnen Tage, was am einfachsten als JSON übermittelt wird. Wie die Dokumentation zeigt, gibt es eine getJson-Methode (Verarbeitung von JSON nach GET-Anfragen), jedoch leider keine postJSON-Methode. Es gibt aber einen kleinen Workaround.

Ich verwende derzeit den jQuery.ajax Aufruf zum Absenden des Formulars, welcher mit einigen Optionen versehen werden kann. Darunter befindet sich die Eigenschaft “dataType“, die mit dem Setzen auf json oder jsonp bewirkt, dass die Rückgabedaten als JSON verarbeitet werden.
Kleines Beispiel:

function postJSON(paramUrl,paramData,paramBeforeSend,paramSuccess,paramError){
	$.ajax({
		type:"POST",
		url:paramUrl,
		data:paramData,
		dataType:"json",
		beforeSend:paramBeforeSend,
		success:paramSuccess,
		error:paramError});
	}

Der Zugriff auf das JSON-Objekt erfolgt nun wie gewohnt:
someJsonSource gibt folgendes zurück: ({"title": "foo","items": [{"title": "bar"},{"title": "baz"},{"title": "quux"}]})

$.ajax({
	type:"POST",
	url:"someJsonSource.php",
	data:"foo=bar",
	dataType:"json",
	success:function(data){
          $.each(data.items, function(i,item){
            $("body").append(item.title);
          });
        }});
}

Herauskommen sollte dann “barbazquux

Tags: ,
   

Über Uli

Uli ist ein begeisterter Blogger mit Hang zur IT. Mit verschiedenen Beiträgen stellt er Gadgets vor, bringt den Lesern IT nahe und zeigt seine Photos dem Netz.