繁体   English   中英

调用 asp.net 核心操作时出现 json 错误

[英]getting json error when invoking asp.net core action

我收到了对 asp.net 核心 controller 中的操作的简单请求。

Controller:

[ApiController]
public class SystemAPIController : ControllerBase
{
    [HttpPost("systemAPI/SetCulture")]
    public async Task SetCulture([FromBody] string culture)
    {
        this.HttpContext.Session.SetString("Culture", culture);
    }
}

机身中的 JSON:

{
    "culture": "nb-NO"
}

使用 postman 调用操作时出现以下错误:

 "The JSON value could not be converted to System.String. Path: $ | LineNumber: 0 | BytePositionInLine: 1."

您需要创建一个 class 代表 json 结构:

public class Request
{
    public string culture {get;set;}
}

并将其用作传入的动作参数:

[HttpPost("systemAPI/SetCulture")]
public async Task SetCulture([FromBody] Request request)
{
    this.HttpContext.Session.SetString("Culture", request.culture);
}

C# 中属性的常见命名约定是 PascalCasing,但要支持它,您可以全局设置它或对每个属性使用JsonPropertyNameAttribute

public class Request
{
    [JsonPropertyName("culture")]
    public string Culture {get;set;}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM