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

Pan*_*wie 1 c# json json.net

由于逗号正在删除,我无法用json中的逗号将数字反序列化为十进制,例如123,99被12399替换.

我发现了类似的问题: 在Newtonsoft.Json中处理十进制值 但是我更容易,因为它是一个标准数字,其中dot是逗号,我不需要使用特定文化进行解析.我怎样才能做到这一点?

public class PriceModel
{
    public decimal Price { get; set; }
}

string json = @"{'Price': '1234,99'}";
PriceModel priceModel = JsonConvert.DeserializeObject<PriceModel>(json);
Run Code Online (Sandbox Code Playgroud)

lev*_*ent 6

这是关于当前的线程文化.

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
});
Run Code Online (Sandbox Code Playgroud)

并检查这一点. https://msdn.microsoft.com/en-us/en-en/library/3ebe5aks(v=vs.110).aspx?f=255&MSPPError=-2147217396