C# 如何让asp.net mvc识别json中的小数?
在.net应用程序中,我使用System.Web.Mvc 5.2.3.0。我的客户端正在发布内容类型为“application/json”的jsonC# 如何让asp.net mvc识别json中的小数?,c#,asp.net-mvc,json.net,C#,Asp.net Mvc,Json.net,在.net应用程序中,我使用System.Web.Mvc 5.2.3.0。我的客户端正在发布内容类型为“application/json”的json {From: "EUR", To: "USD", Rate: 0.00001} 当我的控制器收到此消息时 [HttpPut(), Route("/ExchangeRate/{exchkey}")] public HttpResponseMessage PutCurrencyExchange(string exchkey, [FromBody()]
{From: "EUR", To: "USD", Rate: 0.00001}
当我的控制器收到此消息时
[HttpPut(), Route("/ExchangeRate/{exchkey}")]
public HttpResponseMessage PutCurrencyExchange(string exchkey, [FromBody()] JObject jsonData)
{...
作业对象的费率是字符串“1E-05”
我读过关于定制转换器的文章
和合同解析器
我发现了许多反序列化强类型对象的非常古老的示例。然而,我希望我只是错过了一个简单的配置更改,它将允许我的控制器的JObject正确地将十进制表示为十进制。注意:我认识到,如果客户机字符串化该值,它将正确解析该值。但是,我不能规定我的端点的使用者首先将值字符串化。如果您能够将其更改为True,那么我会更幸运地使用包含单个参数的控制器操作,而不是从body执行该操作,因为定义了
(string-from,string-to,double-Rate)
因为与[FromBody()]JObject jsonData
相比,参数更整洁,更易于维护。我感谢您的贡献。然而,这在我的应用程序中可能是一个问题,因为许多端点需要将发布的数据放在主体中。。。利率是双倍的,而不是一个字符串。手表窗口仅表示为1E-05。下游这被转换成一个字符串,我试图转换成十进制,但失败了。我的错。