| 

.NET C# Java Javascript Exception

JSON - POST

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


JSON - POST

crain - 16.09.2010 14:20
Hallo zusammen,

ich benutze GRAILS 1.3.4 und möchte gerne einen Webservice für Android mit JSON implementieren. Dafür hab ich mir ein einfaches Model mit Controller und View generieren lassen. Ich habe mir folgendes Tutorial angeschaut: [www.naxos-software.de] .

Dort wird beschrieben wie mit POST auch Daten angenommen werden können und entsprechend in die DB gespeichert werden. Leider funktioniert dieser Schritt nicht wirklich(GET geht ohne Probleme). Ich kriege einen Fehler bei def json = request.JSON . Der Debugger zeigt mir an das JSON versucht den String zu parsen leider kommt als Output nur NULL. Mache ich irgendwas falsch? Ist mein POST JSON String der falsche? Wäre um jede Hilfe sehr dankbar!

Gruß,
Mark


Re: JSON - POST

milkyman - 16.09.2010 15:00
Wenn du schon nen Debugger hast, verrat uns doch mal, was in dem String drin steht, der geparst werden soll.

Bye,
Horst


Re: JSON - POST

crain - 16.09.2010 19:25
Vom Client wird folgender Parameter verschickt:
trip123={"startDate":"Thu Sep 16 17:22:34 GMT+00:00 2010","endDate":"Thu Sep 16 17:22:34 GMT+00:00 2010","purpose":"Purpose","notes":"Notes","city":"Rheinbach","name":"AndroidTrip"}

Folgende Exception wird von GRAILS geworfen:

org.codehaus.groovy.grails.web.json.JSONException: Missing value. at character 0 of

Die Daten werden über Android mittels folgendem Code geschickt, data ist ein JSONObject:

HttpClient httpClient = new DefaultHttpClient();
HttpPost postMethod = new HttpPost(url);

HttpParams params = new BasicHttpParams();
params.setParameter(objectName, data.toString());

postMethod.setParams(params);
httpClient.execute(postMethod);
...

Reicht das oder braucht ihr noch weitere Informationen?


Re: JSON - POST

crain - 16.09.2010 21:31
Dann kommt der gleiche Fehler. Ich habe auch eben nochmal im request von GRAILS geguckt und es sieht aus als ob da gar keine Parameter ankommen.


Re: JSON - POST

crain - 16.09.2010 22:38
Hallo zusammen,

ich habe das Problem jetzt ansatzweise gelöst. Zumindest kriege ich jetzt das JSON Object zurück. Der Android Client muss die Methode .setEntity(StringEntity) in HttpPost verwenden. Dann gehts....

StringEntity se = new StringEntity(data.toString());
postMethod.setEntity(se);

Jetzt hab ich ein neues Problem, wenn ich nun das geparste JSON Object nehme und dieses direkt in den Kontruktor meiner Domain Klasse übernehme speichert er dieses nicht ab:

def json = request.JSON
def trip = new Trip(json)
trip.save()

Leider bekomme ich auch keine Fehlermeldung oder ähnliches. Kann man das irgendwo noch einstellen?


Re: JSON - POST

slyfox1972 - 18.09.2010 10:26
Was gibt denn json.toString() zurück? Dann kann ich weiter helfen.

Gruß

Egon Schmid


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "JSON - POST" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.