.NET Json 序列化程序将 Double.PositiveInfinity 等序列化为 Infinity 之类的东西,它们不是有效的 JSON。我现在正在尝试使用 Json.NET 将对象序列化为 JSON,但我想将其包装起来,以便将 Infinity 等值转换为 NULL 或字符串“Infinity”。我该怎么做呢?
问问题
1735 次
1 回答
0
做到这一点的唯一方法是将Double
值序列化为在值之上提供信息的自定义类型。例如
{
'isInfinity': 'true',
'isNan': 'false'
'value': '0' };
这可以通过使用包装类型来处理Double
值很容易地完成
[DataContract]
public sealed class DoubleWrapper {
[DataMember]
public bool isInfinity;
[DataMember]
public bool isNaN;
[DataMember]
public double value;
public DoubleWrapper(double p) {
isInfinity = Double.IsInfinity(p);
isNaN = Double.IsNaN(p);
value = p;
}
}
于 2011-11-03T15:50:46.530 回答