【问题标题】:POST an object containing array with Angular and Spring使用 Angular 和 Spring 发布包含数组的对象
【发布时间】:2018-12-29 19:45:19
【问题描述】:

我正在开发一个项目,该项目使用 Angular 作为前端,Java 1.8 使用 Springboot 作为后端,这基本上是一个 RPG 角色的构建模拟器(具有基本的统计数据,如健康点、法力点等......)。

发布一个角色的名字和统计数据都很好。

但我正在尝试向角色添加项目,这就是我的问题所在。

这是我的 POST mapping in my controller

这是 model class for Character 及其 getter 和 setter(Items 的 get/set 也是一个列表)

这就是我的 Angular 项目的情况

Modelthe methods in my formCharacter component.tsmy formCharacter Service 最后是您选择项目的view

当我提交表单时,我收到此错误“JSON 解析错误:无法从 START_OBJECT 令牌中反序列化 java.util.ArrayList 实例

对于文字墙,我深表歉意,如果有人知道如何解决此问题,请提前感谢。

我猜是我的角色对象中的项目数组导致了序列化问题?

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。请提问发布代码 sn-ps 而不是代码快照的问题。这使其他用户更容易回答您的问题。

标签: spring-mvc spring-boot


【解决方案1】:

这里JSON 是实际问题。 JSON 默认不能反序列化为Collection,因为它实际上不是JSON Array

确保 json 应该是这样的 {...} ,如果有多个元素,它应该是 -[{...},{...}] 。例如 -

{
  "characterName": "lower",
   "healthPoints":"323",
    ...
  "items": [
    ...
  ]
}

【讨论】:

  • 所以正如你所说,json 是问题所在,这只是我的数组没有在我的角度模型中初始化的事实。
猜你喜欢
  • 2012-04-11
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 2018-12-31
相关资源
最近更新 更多