2016-05-05 7 views
1

Ich habe eine Gson erzeugt POST application/json Anfrage wie diese mit arbeiten:Jersey-json mit abzubilden Feldnamen mit Leerzeichen

{"Process Name": "Urlaubsantrag", "Action Performed EmailId": "[email protected]", "Process Step": "Start"} 

I Jersey verwenden möchten json Daten an meine Bohne zu kartieren . Wie

@POST 
@Path("/post") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public String createVacation(Vacation aVacation) 
{ 
    //DO something 
} 

Wo die Klasse Urlaub meines Modell

public class Vacation { 
    String processName; 
    String actionPerformedEmailID; 
    String processStep; 
    String actionName; 
etc... 

Problem ist, dass alle Feldnamen in dem json Code haben weißen Räume in ihnen darstellt. Ich habe Probleme, korrekte Feldnamen in meinem Modell zu finden, so dass "Prozessname" zu ProzessName zugeordnet wird.

Wie würde ich das tun? Oder gibt es einen anderen Ansatz, um damit umzugehen?

Antwort

0

Es ist wahrscheinlich zu spät, um diese Frage zu beantworten, aber heute hatte ich das gleiche Problem (außer es war Unterstrich anstelle von Leerzeichen in einem Feldnamen). Ich habe das mit XML-Binding-Annotationen behoben.

So müssen wir die Ferien Klasse und ihre Felder auf diese Weise

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public class Vacation { 
@XmlElement(name = "Process Name") 
String name; 
@XmlElement(name = "Action Performed EmailId") 
String actionPerformedEmailID; 
@XmlElement(name = "Process Step") 
String processStep; 
String actionName; 

usw.

Sie weglassen können @XmlElement Anmerkung zu annotieren, wenn die Namen der JSON-Feld und das Feld POJO sind gleich.