.NET Json序列化程序将Double.PositiveInfinity等序列化为Infinity之类的东西,它们是无效的JSON。我现在正在尝试使用Json.NET将对象序列化为JSON,但是我想将它包装起来以便像Infinity这样的值转换为NULL或字符串“Infinity”。我该怎么做呢?
答案 0 :(得分: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;
}
}