Curl-Spring复杂对象为空

Curl-Spring复杂对象为空,spring,curl,Spring,Curl,我正在使用SpringBoot开发REST应用程序 重要代码如下所示: Controller @PostMapping(value = "/addUpdateNewsItem") public ResponseEntity<Object> addUpdateNewsItem( @RequestBody NimbusNewsDto dto, Principal principal) { the DTO: public cla

我正在使用SpringBoot开发REST应用程序

重要代码如下所示:

Controller
@PostMapping(value = "/addUpdateNewsItem")
    public ResponseEntity<Object> addUpdateNewsItem(
        @RequestBody NimbusNewsDto dto,
        Principal principal) {

the DTO:
public class NimbusNewsDto {
    private String userDn;
    private NimbusNewsJson newsItem;

NimbusNewsJson:
    private String nimbusId;
    private String subject;
    private String description;
    private String creator;
    private String createDate;
    private String expirationDate;


Curl:
curl -k -d @newsItem1.json -H "Content-Type: Application/json"  http://localhost:8443/baseline/news/addUpdateNewsItem 

the data:
{"newsDto":{
    "userDn": "localhost",
    "newsItem": {
        "nimbusId": "nimbusId1",
        "subject": "subject1",
        "description": "Hello I am the first news item",
        "creator": "God",
        "createDate": "23/Jul/2020:02:15:11",
        "expirationDate": ""
    }
}}
{
  "userDn": "localhost",
  "newsItem": {
    "nimbusId": "nimbusId1",
    "subject": "subject1",
    "description": "Hello I am the first news item",
    "creator": "God",
    "createDate": "23/Jul/2020:02:15:11",
    "expirationDate": ""
  }
}
控制器
@PostMapping(value=“/addUpdateNewItem”)
公共响应标题addUpdateNewsItem(
@请求主体NimbusNewsDto dto,
(校长){
运输署署长:
公共类NimbusNewsDto{
私有字符串userDn;
私有NimbusNewsJson新闻项目;
NimbusNewsJson:
私有字符串nimbusId;
私有字符串主题;
私有字符串描述;
私有字符串创建者;
私有字符串createDate;
私有字符串过期日期;
卷曲:
curl-k-d@newsItem1.json-H“内容类型:Application/json”http://localhost:8443/baseline/news/addUpdateNewsItem 
数据:
{“newsDto”:{
“userDn”:“localhost”,
“新闻项目”:{
“nimbusId”:“nimbusId1”,
“主题”:“主题1”,
“说明”:“你好,我是第一条新闻”,
“创造者”:“上帝”,
“createDate”:“23/Jul/2020:02:15:11”,
“到期日期”:”
}
}}
我花了一段时间来克服导致“错误请求”等的格式错误。现在,当我进行调用并调试代码时,我看到dto对象有两个项,它们都是空的。我尝试了“和”和转义字符的多种组合,但都没有成功

我在windows下运行Ubuntu shell,spring代码在Tomcat上运行


建议?上次我遇到这个问题时,我将DTO对象分解为多个参数,但我只是将DTO作为输入。

您发送的json与DTO不“匹配”,有一个额外的对象“包装”您的DTO

您必须删除此部分:

{
  "newsDto": {
  ...
}
像这样:

Controller
@PostMapping(value = "/addUpdateNewsItem")
    public ResponseEntity<Object> addUpdateNewsItem(
        @RequestBody NimbusNewsDto dto,
        Principal principal) {

the DTO:
public class NimbusNewsDto {
    private String userDn;
    private NimbusNewsJson newsItem;

NimbusNewsJson:
    private String nimbusId;
    private String subject;
    private String description;
    private String creator;
    private String createDate;
    private String expirationDate;


Curl:
curl -k -d @newsItem1.json -H "Content-Type: Application/json"  http://localhost:8443/baseline/news/addUpdateNewsItem 

the data:
{"newsDto":{
    "userDn": "localhost",
    "newsItem": {
        "nimbusId": "nimbusId1",
        "subject": "subject1",
        "description": "Hello I am the first news item",
        "creator": "God",
        "createDate": "23/Jul/2020:02:15:11",
        "expirationDate": ""
    }
}}
{
  "userDn": "localhost",
  "newsItem": {
    "nimbusId": "nimbusId1",
    "subject": "subject1",
    "description": "Hello I am the first news item",
    "creator": "God",
    "createDate": "23/Jul/2020:02:15:11",
    "expirationDate": ""
  }
}

我原以为我试过那种特殊的组合,但显然我没有。谢谢!