当前位置: 首页 > 知识库问答 >
问题:

Spring RestController反序列化Requestbody枚举

裴俊雅
2023-03-14

我有这个枚举:

public enum DeckSuit {
    SPANISH_SUIT("SpanishSuit"),
    FRENCH_SUIT("FrenchSuit");

    private final String text;

    private DeckSuit(final String text) {
        this.text = text;
    }

    @Override
    public String toString() {
        return text;
    }
}

控制器中的此方法:

@RequestMapping( method = RequestMethod.POST)
public int createNewGame(@RequestBody DeckSuit deckSuit) {
    return gameDao.createNewGame(deckSuit);  
}

在客户端,我使用angularJS使用http服务使用上述方法,如下所示:

    var deferred = $q.defer();

    $http({
        method : "POST",
        url : RestLocationService.restlocation + resource ,
        data : { deckSuit : "SPANISH_SUIT" },
        headers : {
            'Content-Type' : 'application/json'
        }
    }).then(function successCallback(response) {
        console.log("Submit Success");
        var responseData = response.data;
        deferred.resolve(responseData);

    }, function errorCallback(response) {
        console.log("Submit Error");
        deferred.reject();
    });
    return deferred.promise ;

但我在服务器中遇到此异常:

.w.s.m.s.DefaultHandlerExceptionResolver:无法读取HTTP消息:org。springframework。http。转换器。HttpMessageTreadableException:无法读取文档:无法反序列化模型实例。乌提尔斯。DeckSuit out of START_对象标记

共有1个答案

微生恩
2023-03-14

返回gameDao。createNewGame(deckSuit)
-试着打电话给deckSuit。toString()

 类似资料:
  • 问题内容: 我如何使用gson 2.2.4序列化和反序列化一个简单的枚举? 问题答案: 根据 GsonAPI文档 ,Gson提供了的默认序列化/反序列化,因此基本上,应使用标准和方法(与其他类型一样)对序列化和反序列化。

  • 问题内容: 我正在使用JAVA 1.6和Jackson 1.9.9我有一个枚举 我添加了一个@JsonValue,这似乎可以将对象序列化为: 但是当我尝试反序列化时,我得到了 我在这里想念什么? 问题答案: 如果你希望将枚举类与其JSON表示完全脱钩,则@xbakesx指出的序列化器/反序列化器解决方案是一个很好的解决方案。 另外,如果你喜欢一个独立的解决方案,则基于·和·注释的实现会更方便。 因

  • 我使用的是JAVA 1.6和Jackson 1.9.9我有一个枚举 我添加了一个@jsonValue,这似乎完成了它将对象序列化为:

  • 问题内容: 我正在尝试并且未能对Jackson 2.5.4的枚举进行反序列化,并且我不太清楚我的情况。我的输入字符串是驼峰式的,我想简单地映射到标准的Enum约定。 我也尝试了吸气剂,但没有成功,这是我在其他地方看到的一种选择。他们都炸毁了: 我究竟做错了什么? 问题答案: 编辑: 从Jackson 2.6开始,您可以在枚举的每个元素上使用以指定其序列化/反序列化值(请参见此处): (此答案的其余

  • 我正在尝试使用jackson-DataBind Objectmapper反序列化一个JSON字符串,其中包含一组枚举属性。当JSON中出现未在枚举中定义的未知属性时,就会发生这种情况。请在下面找到我正在使用的对象映射器配置。 但是,反序列化(ObjectMapper.ReadValue(jsonText,.class);)抛出此错误。“test”是要反序列化的JSON字符串中的未知属性。 Com.

  • 我需要序列化/反序列化特定枚举: 我有个例外: 我如何通过GSON序列化/反序列化它?