如何实现自定义jackson对象映射器

时间:2014-11-18 22:38:50

标签: java json spring jackson

我正在努力调整angular-ui-tree以在一对多实体模型中保留树结构。我缺少的部分是如何让Spring / Jackson解释以下POST主体

data: "{
          "id":1.7976931348623157e+308,
          "name":"New Category -- Need Name",
          "parent":6,
          "type":"create"
       }"

使用Angular中的$http服务方法进行序列化和传递:

$http.post("/rest/category",
            {data: angular.toJson(updateData)}
        )
        .success(function(data, status, headers, config){
            return [data, status];
        })
        .error(function(data, status, headers, config){
            return [data, status];
        })

现在,我只收到地址错误405s,返回值表示

Request method 'POST' not supported

所以,我修改了下面的控制器,从RequestBody中接收了一个DummyCategory对象:

@RequestMapping(value = "/rest/category", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public List<Category> createCategory(@RequestBody DummyCategory data ){
    log.info("Start creating category " + data);
}

这是这个实体:

@JsonDeserialize(using = DummyCategoryDeserializer.class)
public class DummyCategory {
  private String type;
  private String name;
  private Long id;
  private int parent;

  //getters and setters
}

和相应的DummyCategoryDeserializer类:

public class DummyCategoryDeserializer extends JsonDeserializer<DummyCategory> {

  @Override
  public DummyCategory deserialize(JsonParser jp, DeserializationContext ctx) throws IOException {
    String tempData = jp.getText();

    DummyCategory dummyCategory = new DummyCategory();
    return dummyCategory;
  }
}

由于我对此非常陌生,我的目标是在反序列化器方法中设置调试器断点并完成属性。但是,在进行这些自定义修改后,$http服务仍在执行时返回405s,并且没有命中断点。

我知道服务器正常运行,因为所有GET请求都返回了预期值。

如果您想查看此问题的实际源代码,可以在category-taxonomy分支上找到它。新的反序列化器类位于/ models和/ utils

0 个答案:

没有答案