1
私は、このカスタムオブジェクトExampleを持っていますが、これはorg.json.JSONObjectをmongoクエリとして持っています。Spring @RequestBodyがカスタムオブジェクトにマッピングしていません
public class ExampleObject {
private JSONObject query;
private String[] projections;
private Number limit;
// Constructors, getters and setters
}
私はこのようなRESTコントローラを使用しています:
へ:その後、
@RestController
@RequestMapping("/example")
public class ExampleRestController {
@RequestMapping(value = "/search", method = RequestMethod.POST)
@ResponseBody
public String example(@RequestBody ExampleObject example) {
return "This is an example";
}
そして、私は郵便配達して、次の要求を行います本文を以下に示します(私はでJSONの有効性をチェックしました):
{
"query":{
"field1":"value1",
"field2":"value2"
},
"projections":["field3, field4"],
"limit":3
}
結果は:オブジェクト上の突起と限界「の例は、」正しくsettedているが、クエリが空JSONObject)(nullでありません。フィールドクエリを送信しない場合、オブジェクト "example"のJSONObject変数はnullです。
フィールドクエリが正しく設定されていない理由を理解できません。 @RequestBody jsonをExampleObjectにマップする必要があります。
私はジャクソンが 'JSONObject'をどのように非直列化するのか知らないと疑っています。 'com.fasterxml.jackson.core.JsonNode'で試してみることができますか? –
JsonNodeではうまく動作します!ありがとう!! –