使用 Json.NET 序列化 Vector2 数组
Serialize Array of Vector2 with Json.NET
我正在尝试在 Unity 上使用 Json.NET 来序列化一个 class。
class Polygon 包含 Array of Vector2 但我只想序列化 x和 Vector2 class 的 y 变量,这就是我使用 JsonConverter 属性的原因。
样本class:
public class Polygon
{
public int count { get; set; }
[JsonConverter(typeof(Vector2Converter[]))]
public Vector2[] points { get; set; }
}
它在运行时给我这个错误:
MissingMethodException: Method not found: 'Default constructor not
found...ctor() of
JsonDotNet.Extras.CustomConverters.Vector2Converter[]
有人有什么建议吗?
[JsonConverter]
属性采用转换器的类型,而不是转换器数组的类型。如果您的转换器设计用于处理整个数组的序列化,那么您需要这样指定它:
[JsonConverter(typeof(Vector2Converter))]
public Vector2[] points { get; set; }
如果您的转换器旨在序列化数组中的各个项目,则需要改用此语法:
[JsonProperty(ItemConverterType=typeof(Vector2Converter))]
public Vector2[] points { get; set; }
我正在尝试在 Unity 上使用 Json.NET 来序列化一个 class。
class Polygon 包含 Array of Vector2 但我只想序列化 x和 Vector2 class 的 y 变量,这就是我使用 JsonConverter 属性的原因。
样本class:
public class Polygon
{
public int count { get; set; }
[JsonConverter(typeof(Vector2Converter[]))]
public Vector2[] points { get; set; }
}
它在运行时给我这个错误:
MissingMethodException: Method not found: 'Default constructor not found...ctor() of JsonDotNet.Extras.CustomConverters.Vector2Converter[]
有人有什么建议吗?
[JsonConverter]
属性采用转换器的类型,而不是转换器数组的类型。如果您的转换器设计用于处理整个数组的序列化,那么您需要这样指定它:
[JsonConverter(typeof(Vector2Converter))]
public Vector2[] points { get; set; }
如果您的转换器旨在序列化数组中的各个项目,则需要改用此语法:
[JsonProperty(ItemConverterType=typeof(Vector2Converter))]
public Vector2[] points { get; set; }