我正在使用.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;
}
}
可能是什么问题?请帮忙。
更新
答案 0 :(得分:2)
错误消息中已经提供了答案。
最佳匹配的重载方法 'Newtonsoft.Json.Linq.JObject.Parse(string)'有一些无效 争论
您正在尝试解析显然不是字符串的动态。 尝试将动态转换为字符串值。 如果它是字符串值,则可以对其进行解析。
var details = JObject.Parse(data.ToString());
从OP更新
您与邮递员发送的Json不正确。 尝试使用JsonLint解析json以创建有效的Json