Ich übergebe ein JSON-Objekt von einer PUT-Anfrage an meinen Server. Die Anfrage selbst funktioniert, jedoch scheinen die Felder im JSON, die einen Unterstrich (snake_case) haben, ignoriert zu werden. Die Anfrage gibt die empfangenen Daten aus, um zu sehen, was herauskommt, und der Wert mit dem Unterstrich wird in camelCase konvertiert und nicht analysiert. Hier ist die Klasse:Jersey MOXy nicht analysieren snake_case
Public User{
private int id;
private String name;
private int some_value;
}
Das JSON-Objekt ich auf die PUT-Anfrage übergeben:
{ "id":1, "name":John, "some_value":5 }
Die PUT-Methode liefert nur was moxy in diesem Fall gefangen
@PUT
@Path("user")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public User addUser(User user){
return user;
}
Und der Ausgang ist :
{ "id":1, "name":John, "someValue":0 }
Beachten Sie, dass sich "some_value" in "someValue" geändert hat und der tatsächliche Wert nicht aktualisiert wurde. Irgendeine Idee warum das passiert?
Das kümmerte sich um die Hälfte des Problems, der Wert ist jetzt aktualisiert. Aber die Ausgabe zeigt immer noch camelCase. Irgendeine Idee, wie man das repariert? Oder muss ich nur damit gehen? – Flopn
Die '@ XmlElement'-Annotation sollte sowohl beim Lesen als auch beim Schreiben gelten, also vermute ich, dass das Problem irgendwo anders sein muss. Sie könnten versuchen, [MCVE] (https://stackoverflow.com/help/mcve) zu veröffentlichen, wenn Sie weitere Hilfe benötigen. –
Eigentlich funktioniert das nicht. Es fügt dem bestehenden JSON ein weiteres Feld "some_value" hinzu, jetzt hat es sowohl das als auch "someValue", aber mit dem übergebenen Wert – Flopn