2017-10-17 79 views
0

在我的.net应用程序中,我使用的是System.Web.Mvc 5.2.3.0。我的客户端发布了JSON与内容类型: '应用/ JSON的'我怎样才能让asp.net mvc识别json中的小数?

{From: "EUR", To: "USD", Rate: 0.00001} 

到时候我控制器接收这个

[HttpPut(), Route("/ExchangeRate/{exchkey}")] 
public HttpResponseMessage PutCurrencyExchange(string exchkey, [FromBody()] JObject jsonData) 
{... 

的JObject的速度是一个字符串 “1E-05”。

我读过有关自定义转换 https://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json_Converters.htm 和合同解析器 https://www.newtonsoft.com/json/help/html/CustomContractResolver.htm

我发现了一些很老的实例进行反序列化强类型对象。但是,我希望我只是缺少一个简单的配置更改,这将允许我的控制器的JObject正确表示十进制小数。注意:我认识到,如果客户端对值进行了字符串化,它将正确解析它。但是,我无法指定我的端点消费者首先将值串联起来。

+0

我的错误我有更好的运气与含有各个参数,而不是从体控制器动作......速度快到了作为一个双,而不是一个字符串。观察窗代表了这个1E-05。下游这被转换为一个字符串,我试图转换为小数,它失败了。我的错。 –

回答

1

如果你能够改变

+0

确实,因为与'[FromBody()] JObject jsonData'相比,定义'(string From,string To,double Rate)'参数更整洁,更容易维护。 –

+0

我很欣赏贡献。然而,这可能是我的应用程序中的一个问题,在许多端点发布的数据需要在体内。 –