# JSON von JavaScript an Servlet



## acardi (30. Jun 2012)

Hallo Leute,

ich bin relativ neu in der Materie und versuche derzeit, ein in JavaScript erstelltes JSON Objekt an mein Servlet zu bekommen. Hoffe mal ich bin hier im richtigen Forum.

Habe im Internet schon viel gesucht aber irgendwie nichts gefunden ...

Wie der Titel sagt habe ich in einem JavaScript ein JSON Objekt erstellt, dass ich an mein Servlet übergeben und dort verarbeiten möchte.

Geht das überhaupt, oder muss ich mein in JS erstelltes JSON Objekt über die HTML Seite an mein Servlet weitergeben?? (Per HTTP habe ich schon einige Servlet aufrufe...)

Vielleicht kann mir da jemand einen kleinen Tipp geben. Hoffe die Frage ist nicht alzu doof.

Vielen Dank schonmal.


----------



## Schandro (1. Jul 2012)

Stichwort: AJAX


----------



## acardi (1. Jul 2012)

Ja, damit versuche ich es. Mir ist nur der Ablauf nicht ganz klar, wie ich es machen muss.

Also ich habe schon einen Login per AJAX realisiert. Dort ruft eine HTML Seite per Formular und POST mein Servlet auf.

Aber wie muss ich das nun in diesem konkreten Fall realisieren?? Aus HTML per Formular ist mir klar, aber ich weiß nicht, wie ich nun aus meiner JavaScript Funktion heraus das JSON Objekt an mein Servlet weitergeben kann.

Vielleicht kann mir da einer einen kleinen Tipp geben ... bin jetzt so weit:


```
routeJSON = JSON.stringify(routeArray);
	document.write(routeJSON);
	
	
	var http = new XMLHttpRequest();
	var params = "data=" +routeJSON;
	var url = "SaveRouteHandler";
	
	http.open("GET", url+"?"+params, true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = function() {
		if(http.readyState == 4 && http.status == 200) {
			alert(http.responseText);
		}
	};
	http.send(null);
```

Mir wird dann allerdings nur auf einer leeren Seite der JSON String angezeigt:

[null,{"$a":53.15833,"ab":8.248389999999972},{"$a":53.139156,"ab":8.25330699999995},{"$a":53.141952,"ab":8.213390000000004},{"$a":53.150673,"ab":8.236734999999953}]

(Sind Koordinaten dadrin).


----------



## acardi (1. Jul 2012)

Ich habe gerade einen kleinen Fortschritt errungen. Hatte einen Syntaxfehler in meinem Code, nun wird das Servlet aufgerufen.

Nur wie kann ich aus dem übergebenen JSON String nun die Parameter herausholen?? Kann es sein, dass mein JSON String nicht konform ist?
Es fehlen glaube ich Attribute (wie z.B. Koordinate), damit ich sie herausfischen kann, oder?


----------



## Schandro (1. Jul 2012)

Das JSON was du geschrieben hast sieht eigentlich soweit valide aus.

Serverseitig kannst du bspw. google-gson - A Java library to convert JSON to Java objects and vice-versa - Google Project Hosting benutzen um aus dem JSON-String die Daten rauszuholen.


----------



## acardi (1. Jul 2012)

Die Anforderung lautet, keine externen Bibliotheken zu nutzen.

Kann ich mir aus dem JSON String irgendwie die Attribute rausparsen??


----------



## Schandro (1. Jul 2012)

> Kann ich mir aus dem JSON String irgendwie die Attribute rausparsen??


Klar, entweder du benutzt dafür String-interne methoden wie split, indexOf und substring, oder du machst es gleich "richtig" und benutzt RegEx.


----------



## acardi (1. Jul 2012)

acardi hat gesagt.:


> [null,{"$a":53.15833,"ab":8.248389999999972},{"$a":53.139156,"ab":8.25330699999995},{"$a":53.141952,"ab":8.213390000000004},{"$a":53.150673,"ab":8.236734999999953}]




Sehe ich richtig, dass das erste Attribut immer $a heißt und das zweite ab? Oder welche Bedeutung hat das?


----------



## Schandro (1. Jul 2012)

```
[null,{"$a":53.15833,"ab":8.248389999999972},{"$a":53.139156,"ab":8.25330699999995},{"$a":53.141952,"ab":8.213390000000004},{"$a":53.150673,"ab":8.236734999999953}]
```
Das ist ein Array mit der Länge 5. Das 1. Element ist "null", alle anderen Elemente sind Objekte mit nem Attribut "$a" und nem Attribut "ab". Aber eigentlich müsstest du doch das am Besten wissen, ist doch schließlich dein JSON-Object


----------



## acardi (1. Jul 2012)

Vielen Dank, du hast mir sehr geholfen! 

Ich bin seit gestern ganz neu mit JSON unterwegs. Deswegen ist mir die exakte Struktur noch nicht ganz klar und ich muss zugeben, dass ich noch Probleme habe zu verstehen, wie mein Array da reingepackt wird.

Aber nun klappts, vielen Dank  Ich probier mal weiter!


----------

