我定义了以下类:
<TypeConverter(GetType(ExpandableObjectConverter))>
<DataContract()>
Public Class Vector3
<DataMember()> Public Property X As Double
<DataMember()> Public Property Y As Double
<DataMember()> Public Property Z As Double
Public Overrides Function ToString() As String
Return String.Format("({0}, {1}, {2})",
Format(X, "0.00"),
Format(Y, "0.00"),
Format(Z, "0.00"))
End Function
End Class
使用DataContractJsonSerializer
我按预期收到以下 JSON:
{
"Vector": {
"X": 1.23,
"Y": 4.56,
"Z": 7.89
}
}
然而,JSON.NET 产生:
{
"Vector": "(1.23, 4.56, 7.89)"
}
如果我ExpandableObjectConverter
从类中删除该属性,JSON.NET 会产生预期的结果(与 DataContractJsonSerializer 相同)。
不幸的是,我需要ExpandableObjectConverter
这样才能使该类与属性网格一起使用。
有没有办法告诉 JSON.NET 忽略ExpandableObjectConverters
?
我更喜欢使用 JSON.NET 而不是DataContractJsonSerializer
因为将枚举序列化为其字符串表示形式要容易得多。