2016-08-09 184 views
0

Ich versuche, eine json zu einem api zu schicken, aber ich habe diesen Fehler:Wie schicke ich einen json richtig zu einem RestController mit Ajax?

com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'status': was expecting ('true', 'false' or 'null') 

Dies ist die javascript:

$("body").on('click','.btn-danger' ,(function(){ 
    var id = $(this).val(); 
    var data = {"status": "canceled", 
       "response": ""}; 
    console.log(data); 
    $.ajax ({ 
     type: 'PUT', 
     url: '/api/pendingrequests/' + id, 
     contentType: "application/json", 
     data: data, 
     dataType : "html" 
    }).done (function() { 
     $(this).hide(); 
    }); 
})); 

Der Controller:

@RequestMapping(value = "/api/pendingrequests/{requestId}", method = RequestMethod.PUT) 
    public ResponseEntity updateRequestStatus(@PathVariable Long requestId, @RequestBody HolidayRequestAction action) throws IOException { 
     return updateRequestStatusService.updateRequest(requestId, action); 
    } 

Und POJO die ich versuche, von der Anfrage zu erhalten:

public class HolidayRequestAction { 
    private String status; 
    private String response; 

    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    public String getResponse() { 
     return response; 
    } 

    public void setResponse(String response) { 
     this.response = response; 
    } 
} 

Warum bekomme ich diese Parsing Exception? Was könnte das Problem sein?

+0

geht "status": "canceled" senden Haben Sie versucht, einen JSON-String anstelle eines Objekts vorbei? 'var data = '{" status ":" abgebrochen "," response ":" "};' – mjsarfatti

+0

Ist der Fehler nicht schon ziemlich beschreibend? token 'status': wurde erwartet ('wahr', 'falsch' oder 'null'), bedeutet, dass die Statuseigenschaft in Daten entweder wahr/falsch/null sein sollte –

Antwort

3

Ihre Frage enthält die Antwort: 'status': was expecting ('true', 'false' or 'null')

So können Sie andere Werte nicht dann 'true', 'false' or 'null'

Aber in der Anfrage