用Json.NET序列化Vector2数组

时间:2015-02-06 15:38:51

标签: arrays unity3d json.net

我正在尝试在Unity上使用Json.NET来序列化一个类 Polygon 类包含 Vector2 数组,但我只想序列化Vector2类的x和y变量,这就是为什么我使用的是JsonConverter属性。

示例类:

public class Polygon
{
    public int count { get; set; }

    [JsonConverter(typeof(Vector2Converter[]))]
    public Vector2[] points { get; set; }
}

它在运行时给出了这个错误:

  

MissingMethodException:找不到方法:'默认构造函数不是   发现... ctor()   JsonDotNet.Extras.CustomConverters.Vector2Converter []

有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

[JsonConverter]属性采用转换器的类型,而不是转换器数组的类型。如果您的转换器设计用于处理整个阵列的序列化,那么您需要像下面这样指定它:

    [JsonConverter(typeof(Vector2Converter))]
    public Vector2[] points { get; set; }

如果您的转换器设计为序列化阵列中的各个项目,则需要使用以下语法:

    [JsonProperty(ItemConverterType=typeof(Vector2Converter))]
    public Vector2[] points { get; set; }