小编pan*_*zza的帖子

如何使用Json.Net反序列化枚举数组?

我有一个像这样的JSON:

[{ 
    "agencyId": "myCity",
    "road": {
    "note": "",
        "lat": "45.321",
        "lon": "12.21",
        "streetCode": "290",
        "street": "street1",
        "fromNumber": "",
        "toNumber": "",
        "fromIntersection": "",
        "toIntersection": ""
    },
    "changeTypes": ["PARKING_BLOCK", "ROAD_BLOCK"],
},]
Run Code Online (Sandbox Code Playgroud)

和这样的一个类:

public class AlertRoad : BaseAlert
{
    [JsonProperty("agencyId")]
    [JsonConverter(typeof(StringEnumConverter))]
    public AgencyType AgencyId { get; set; }

    [JsonProperty("changeTypes")]
    [JsonConverter(typeof(StringEnumConverter))]
    public ChangeType[] ChangeTypes { get; set; }

    [JsonProperty("road")]
    public Road RoadInfo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

AgencyType是枚举,AgencyId的反序列化和序列化工作.

ChangeType是另一个枚举,但ChangeTypes的反序列化和序列化不起作用.我假设原因是ChangeTypes是一个枚举值数组.

问题是:如何反序列化/序列化ChangeTypes字段,或者通常是枚举值数组?

我尝试定义自己的字段转换器,名为ChangeTypeConverter,并将StrinEnumConverter更改为ChangeTypeConverter for ChangeTypes字段,但在ReadJson函数中,reader的值为null.

public class ChangeTypeConverter : JsonConverter
{
    public override void WriteJson(JsonWriter writer, …
Run Code Online (Sandbox Code Playgroud)

c# json.net windows-phone-8

19
推荐指数
2
解决办法
6051
查看次数

标签 统计

c# ×1

json.net ×1

windows-phone-8 ×1