无法将JSON对象发布到asp.net webapi

非人的

我需要将以下json对象传递给我的asp.net core 3.1 Web API

{
    "client": {
        "clientID": "3529",
        "clientData": "This a test data"
    },
    "selectedUserIDs": [
        3549,
        3567,
        3546,
        3561,
        3532       
    ],
    "selectedDepartmentsIDs": [
        10695,
        71,
        72,
        121     
       
    ]
}

现在如何在我的Web API中访问此对象?以下是我的api控制器

[HttpPost("/api/client/{id}/savedata")]
public ActionResult SaveClientDetails(int workflowID, [FromBody] Clientdata data)
{            
    //save operation        
}

以下是我的clientdata类

public class clientdata
{
    public client client{ get; set; }
    public List<selectedUserIDs> selectedUserIDs{ get; set; }
    public List<selectedDepartmentsIDs> selectedDepartmentsIDs { get; set; }
}

和客户端类

public class client 
{
    public string clientID { get; set; }
    public string clientData { get; set; }
}

和selectedUserIDs类如下

public class selectedUserIDs
{        
    public int Ids{ get; set; }
}

和selectedDepartmentsIDs类如下

public class selectedDepartmentsIDs
{        
    public int Ids{ get; set; }
}

但是我无法在Web API主体中访问此复杂对象

在邮递员中引发以下错误

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|10eabbbb-4a15387d9152b7d6.",
    "errors": {
        "$.selectedUserIDs[0]": [
            "The JSON value could not be converted to System.Collections.Generic.List`1[ClientCoreAPI.Client.Entity.selectedUserIDs]. Path: $.selectedUserIDs[0] | LineNumber: 6 | BytePositionInLine: 12."
        ]
    }
}
马克西米利安·阿斯特(Maximilian Ast)

您对的定义clientdata与json文件不匹配。您有两种选择:

  1. 更改clientdata为:

     public class clientdata
     {
         public client client{ get; set; }
         public List<int> selectedUserIDs{ get; set; }
         public List<int> selectedDepartmentsIDs { get; set; }
     }
    
  2. 或者将json更改为

    {
        "client": {
            "clientID": "3529",
            "clientData": "This a test data"
        },
        "selectedUserIDs": [
            { "Ids": 3549 },
            { "Ids": 3567 },
            { "Ids": 3546 },
            { "Ids": 3561 },
            { "Ids": 3532 }       
        ],
        "selectedDepartmentsIDs": [
            { "Ids": 10695 },
            { "Ids": 71 },
            { "Ids": 72 },
            { "Ids": 121 }
        ]
    }
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Typescript Map对象发布到ASP.Net Core WebAPI?

来自分类Dev

无法将数据从ASP.Net WebAPI 2发布到SQS

来自分类Dev

使用jQuery发布到ASP.Net webapi

来自分类Dev

使用ASP.NET WebAPI发布复杂对象

来自分类Dev

使用Aurelia将数据和文件发布到ASP.NET WebAPI

来自分类Dev

如何将表单数据发布到ASP.NET WebAPI 2?

来自分类Dev

如何使用Fiddler将XML发布到ASP.NET WebAPI

来自分类Dev

如何将表单数据发布到ASP.NET WebAPI 2?

来自分类Dev

使用Aurelia将数据和文件发布到ASP.NET WebAPI

来自分类Dev

AngularJS将HtmlForm发布到.NET WebAPI2

来自分类Dev

ASP.NET webapi或SignalR?

来自分类Dev

WebApi无法在ASP.Net中工作

来自分类Dev

ASP.NET WebAPI 2嵌套JSON

来自分类Dev

如何将JSON字符串从ASP.Net传递到WebAPI获取方法?

来自分类Dev

在.NET 4.5.1中发布到ASP.NET WebApi 2

来自分类Dev

WebAPI将JSON转换为强类型的.net对象

来自分类Dev

.NET Core WebAPI VueJS模板发布问题

来自分类Dev

从Angular到.net WebAPI的发布始终为null

来自分类Dev

将值从Angular应用发布到.Net Core WebAPI时忽略时区

来自分类Dev

通过AJAX将JSON对象发布到ASP.NET Core Web API

来自分类Dev

ASP.NET WebAPI OData 406

来自分类Dev

解释ASP.NET WebAPI HttpRoute管道

来自分类Dev

自动生成ASP.net WebAPI的文档

来自分类Dev

ASP.NET WebAPI-[FromBody]问题

来自分类Dev

ASP.NET WebAPI Ajax进展

来自分类Dev

ASP.NET WebAPI默认登录页面

来自分类Dev

ASP.NET WebApi AngularJS测试

来自分类Dev

ASP.NET WebAPI模板用法

来自分类Dev

使用 ASP.Net WebAPI 转发流