2016-08-09 4 views
0

jsonをAjaxを使ってRestControllerに正しく送信するにはどうすればいいですか?私は、APIにJSONを送信しようとしていますが、私はこのエラーを取得する

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

これは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(); 
    }); 
})); 

コントローラ:

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

とPOJO要求から受け取ろうとしている:

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; 
    } 
} 

なぜこの解析例外が発生しますか?何が問題なの?

+0

に行くことができないがあなたの代わりに、オブジェクトのJSON文字列を渡してみましたか? 'var data = '{" status ":" cancelled "、" response ":"}'; ' – mjsarfatti

+0

エラーはあまり説明できませんか?トークン 'status':予期していた( 'true'、 'false'または 'null')、データ内のステータスプロパティがtrue/false/nullのいずれかであることを意味します –

答えて

3

あなたの質問には答えが含まれています'status': was expecting ('true', 'false' or 'null')

だから、あなたはその後、'true', 'false' or 'null'

を他の値を送信する。しかし、要求に"status": "canceled"

関連する問題