Java 如何使用spring boot和angularjs将JSON对象插入数据库?

Java 如何使用spring boot和angularjs将JSON对象插入数据库?,java,json,angularjs,spring-boot,spring-data-jpa,Java,Json,Angularjs,Spring Boot,Spring Data Jpa,我不熟悉Spring boot,所以这个问题听起来可能很傻。我想在数据库中插入一个json对象。但它给了我一个错误,比如: “无法计算类型的Jackson反序列化”。 在控制台上,我收到一个错误,如: Http 415不支持JSON的媒体类型错误 这是我的POJO课程: @Entity @Table(name = "academics") public class Academics { @Id @GeneratedValue(strategy = GenerationType

我不熟悉Spring boot,所以这个问题听起来可能很傻。我想在数据库中插入一个json对象。但它给了我一个错误,比如: “无法计算类型的Jackson反序列化”。 在控制台上,我收到一个错误,如:

Http 415不支持JSON的媒体类型错误

这是我的POJO课程:

@Entity
@Table(name = "academics")
public class Academics {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private int id;
    @Column(name = "adhaarcard")
    private String adhaarCard;
    @Column(name = "grade")
    private List grades;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAdhaarCard() {
        return adhaarCard;
    }

    public void setAdhaarCard(String adhaarCard) {
        this.adhaarCard = adhaarCard;
    }

    public List getGrades() {
        return grades;
    }

    public void setGrades(List grades) {
        this.grades = grades;
    }

}
我的控制器功能:

@RequestMapping(value="saveacademics",method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Object> saveAvademics(@RequestBody Academics academics) {

        academicsService.save(academics);   

        URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}")
                .buildAndExpand(academics.getId()).toUri();
        return ResponseEntity.created(location).build();    
}

请在MediaType.APPLICATION\u JSON\u值上尝试MediaType.APPLICATION\u JSON

  @RequestMapping(value="saveacademics",method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON)

MediaType.APPLICATION\u JSON
是“APPLICATION/JSON的公共常量媒体类型”,而
MediaType.APPLICATION\u JSON\u VALUE
是“MediaType.APPLICATION\u JSON的字符串等价物”。

从angular js生成的JSON与Java pojo不匹配

更好的是,您可以如下所示重新格式化json

{ adhaarCard: "12", grades : [
 { university: "univ name", specialization: "sadd", grade: 83, graduation:"SSC", year: 2007  },
 { university: "univ name", specialization: "sadd", grade: 67, graduation:"HSC", year: 2009 }
 ]
}
并将PoJo类映射为

    @Column(name = "adhaarcard")
       private String adhaarCard;
    @Column(name = "grade")
       private List<Grades> grades ;
添加列映射和getter、setter

提示:

您可以使用@PostMapping来代替@RequestMapping,它是一种速记。因此,您不会混淆媒体类型,它将application/json作为默认类型

@RequestMapping(value="saveacademics",method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
取代

@PostMapping("saveacademics")

原因可能是列表中没有泛型类型?尝试添加它吧?AngularJS$http服务会自动字符串化数据。做两次是明智的吗?{u data.adhaarCard:“1111111111”的后控制台输出等级:等级:{ssc:“83”,hsc:“67”,qoneGrade:“60”}毕业:{ssc:“ssc”,hsc:“hsc”,quOne:“Eng”}专业:{ssc:“N.A”,hsc:“Scii”,qoneSpl:“comp sci.”大学:{ssc:“Nasik”,hsc:“Nasik”,qoneUni:“Pune”}年份:{ssc:“2007”,hsc:“2009”,qoneYear:“2013”}引发错误:“类型不匹配:无法从MediaType转换为字符串[]”,请尝试使用“application/json”代替MediaType.application_json
@RequestMapping(value="saveacademics",method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@PostMapping("saveacademics")