【发布时间】:2015-01-27 03:25:04
【问题描述】:
我正在解析来自证券交易所市场的一些值,并且我的解析器工作正常,但在某些情况下,我连接的 API 中的数值返回如下内容:
{
"stock_name": "SOGDR50",
"price": "6.1e-7"
}
在大多数请求中,price 以小数形式出现(例如:0.00757238)并且一切正常,但是当 price 是指数表示时,我的解析器会中断。
我正在使用Json.Net:http://www.newtonsoft.com/json
我的代码是:
T response = JsonConvert.DeserializeObject<T>(jsonResult);
我玩过JsonSerializerSettings,但没有想出任何解决方案。我可以手动解析有问题的数字,但我需要将响应自动反序列化为正确的对象,具体取决于调用的 API 方法。
关于如何解决这个问题的任何想法?
编辑 1:
public class StockResponse
{
[JsonConstructor]
public StockResponse(string stock_name, string price)
{
Stock_Name = stock_name;
Price = Decimal.Parse(price.ToString(), NumberStyles.Float);
}
public String ShortName { get; set; }
public String LongName { get; set; }
public String Stock_Name{ get; set; }
public Decimal Price { get; set; }
public Decimal Spread { get; set; }
}
【问题讨论】: