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

Jackson尝试将整数转换为字符串

葛高澹
2023-03-14

我有一个非常基本的Spring Boot应用程序,具有。-data-jpa、.-data-rest和。-web依赖项。在我的模型中,有一个实体game,它包含一个整数属性HomeGamesWitch。当我用REST调用获取资源时,会出现以下异常:

.W.S.M.S.DefaultHandlerExceptionResolver:未能写入HTTP消息:org.springframework.HTTP.converter.HttpMessageNotWritableException:无法写入JSON:java.lang.Integer不能转换为java.lang.String;嵌套异常是com.fasterxml.jackson.databind.jsonMappingException:java.lang.Integer不能强制转换为java.lang.String(通过引用链:org.springframework.data.rest.webmvc.json.persistententityJackson2module$persistententityResourceSerializer$1[“content”]->com.coli.stripebackend.model.game[“homegameswitch”])

@Entity
public class Game {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    private Integer homeGameSwitch;

    public Integer getHomeGameSwitch() {
        return homeGameSwitch;
    }
@Repository("gameDao")
public interface GameDao extends JpaRepository<Game, Integer> {}

服务:

@Service("gameService")
public class GameServiceImpl implements GameService {

    @Autowired
    private GameDao gameDao;

    @Override
    public Game retrieveGameById(Integer id) throws Exception {
        Optional<Game> optionalGame = gameDao.findById(id);
        return optionalGame.get();
    }

调用localhost:8080/game/7时发生错误

共有1个答案

刘胜泫
2023-03-14

这个问题与Spring Boot的版本有关。我使用的是2.0.0.M2版本,其中似乎有一个bug。我在使用版本1.5.4.Release时没有这个问题。

 类似资料:
  • 问题内容: 如何在JavaScript中将字符串转换为整数? 问题答案: 最简单的方法是使用本机函数: 如果这对您不起作用,则有 parseInt , 一元加号 , 带有floor的parseFloat 和 Math.round 方法。 parseInt: 一元加号,如果您的字符串已经是整数形式: 如果您的字符串是浮点数或可能是浮点数,并且您想要一个整数: 或者,如果您要多次使用Math.floo

  • 问题内容: 有什么方法可以将null转换为Integer。null实际上是一个字符串,我在我的服务层中传递该字符串,将其接受为整数。因此,每当我尝试将null字符串强制转换为Integer时,都会引发异常。但是我必须将null转换为Integer。 问题答案: 您 不能 从String强制转换为Integer。但是,如果您尝试将字符串转换为整数,并且必须提供处理字符串的实现,请查看以下代码片段:

  • 问题内容: 给定一个数字: 将其转换为字符串的“最佳”方法是: 问题答案: 有多种方法: (我的偏爱) (我不知道编译器如何处理它,也许它和上面一样有效)

  • 问题内容: 我有一个整数 在声明中,我必须将其与一些字符串进行比较。我不能在开始时设置为字符串,因为必须在循环中将其递减。 如何转换? 问题答案: 我找到了答案。 将整数转换为字符串: 将字串转换为整数:

  • 问题内容: 有没有人能将不安全的字符串转换为? 该字符串通常回来为:或类似的东西。 在这种情况下,我要。如果我想。我从不希望该方法失败,但是我不愿意尝试,除非通过它只是为了隐藏错误(以防万一发生极端情况)。 问题答案: 在这种情况下,您确实有一种避免/的方法,尽管我不建议这样做(假设您的输入字符串名为,并且您处于必须返回某些内容的函数中): 将在部分就是你回什么是你想要比如说,如果是,空,全空间,

  • 我是初学C#的,我想为学校创建一个计算器,但是在第45行出现了一个错误。错误消息:字符串长度必须正好为一个字符。我认为在拆分String数组然后另存为char数组之后会有一个错误。但我不知道为什么,也许是假的。 代码部分: 错误消息由char[]发送。 我想我有一个从字符串[]分裂的翻译错误