JSON反序列化将负值转换为绝对值

时间:2015-11-11 00:39:44

标签: c# json deserialization

我使用JsonConvert.DeserializeObject<MyJson>(input)来解析传入的字符串。

MyJson类声明如下

public class MyJson
{
    public ClassA ClassA { get; set; }
    // some other classes
} 

public class ClassA
{ 
    public decimal? ValueA { get; set; }
    // some other values
}

传入字符串input的内容为

{"ClassA":{"ValueA":"-100.11"}}

解析不会抛出任何错误,所有值都会成功解析,但负值-100.11已转换为100.11。

有关这将如何发生的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以尝试指定CultureInfo进行反序列化:

var json = "{ \"ClassA\":{ \"ValueA\":\"-100.11\"} }";
var settings = new JsonSerializerSettings
{
    Culture = new CultureInfo("en")
};
var result = JsonConvert.DeserializeObject<MyJson>(json, settings);