在C#中解析Json格式数据时出错

时间:2019-05-08 13:08:06

标签: c# json

我正在使用.net核心api和angular7。我要从angular项目中调用我的api,并将json格式的数据作为api中的输入进行传递。我想解析该json格式的数据,并从该数据中获取每个值,并将其传递给过程。 解析数据时出现以下错误:

  

“ Newtonsoft.Json.Linq.JObject.Parse(string)”的最佳重载方法匹配具有一些无效的参数

这是我的json格式的数据:

{
    "bu":2,
    "level":60,
    "location":124160,
    "month":"FEB",
    "year":2018,
    "PROCNAME":"proc_plan_wise_adhoc_rpt_n#200",
    "CLIENTID":"CIPQ",
    "REPCODE":"A0200"
}

我想将bu,级别,位置等的值转换为变量并将其传递给过程,如何获取这些值?

这是我的api代码:

[HttpPost]
[Route("bindgenericreports")]
public IActionResult BindGenericReports([FromBody]dynamic data)
{
    try
    {
        rs = new ResponseModel();
        ReportDL objReportDL = new ReportDL(_configuration);
        var details = JObject.Parse(data); //i'm getting error in this line

        string bu = details["bu"].ToString();

        //rs = objReportDL.BindGenericReports(data);
        return Ok(rs);
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        rs = null;
    }
}

可能是什么问题?请帮忙。

更新

postman

.net core

1 个答案:

答案 0 :(得分:2)

错误消息中已经提供了答案。

  

最佳匹配的重载方法   'Newtonsoft.Json.Linq.JObject.Parse(string)'有一些无效   争论

您正在尝试解析显然不是字符串的动态。 尝试将动态转换为字符串值。 如果它是字符串值,则可以对其进行解析。

var details = JObject.Parse(data.ToString());

从OP更新

您与邮递员发送的Json不正确。 尝试使用JsonLint解析json以创建有效的Json