由于逗号正在删除,我无法用json中的逗号将数字反序列化为十进制,例如123,99被12399替换。
我发现了与我类似的问题: Handling decimal values in Newtonsoft.Json 但我的更容易,因为它是一个标准数字,其中dot是逗号,我不需要使用特定文化进行解析。我怎么能这样做?
public class PriceModel
{
public decimal Price { get; set; }
}
string json = @"{'Price': '1234,99'}";
PriceModel priceModel = JsonConvert.DeserializeObject<PriceModel>(json);
答案 0 :(得分:5)
这是关于当前的线程文化。
en-US
分隔符为.
PriceModel value = JsonConvert.DeserializeObject<PriceModel>("{'Price': '1234,99'}", new JsonSerializerSettings
{
// tr culture separator is ","..
Culture = new System.Globalization.CultureInfo("tr-TR") //Replace tr-TR by your own culture
});
并检查一下。 https://msdn.microsoft.com/en-us/en-en/library/3ebe5aks(v=vs.110).aspx?f=255&MSPPError=-2147217396