用json中的逗号反序列化数字到十进制

时间:2017-02-22 20:02:07

标签: c# json json.net

由于逗号正在删除,我无法用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);

1 个答案:

答案 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