【问题标题】:deserialize number with comma in json to decimal将json中带逗号的数字反序列化为十进制
【发布时间】:2017-07-13 01:44:38
【问题描述】:

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

我发现了与我类似的问题: Handling decimal values in Newtonsoft.Json 但我的更容易,因为它是一个标准数字,其中点是逗号,我不需要使用特定的文化进行解析。我该怎么做?

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

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

【问题讨论】:

    标签: c# json json.net


    【解决方案1】:

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

    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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    相关资源
    最近更新 更多