json.net 处理奇怪的格式



我如何处理 json.net:https://raw.githubusercontent.com/VoiDGlitch/WarframeData/master/JSON/MissionDecks.json

这些是类:

class TennoItem
{
    public List<TennoData> Data { get; set; }
}

class TennoData
{
    [JsonProperty("Locations")]
    public string[] Locations { get; set; }
    [JsonProperty("Rotation A")]
    public string[] RotationA { get; set; }
    [JsonProperty("Rotation B")]
    public string[] RotationB { get; set; }
    [JsonProperty("Rotation C")]
    public List<string> RotationC { get; set; }

}

然后

SERIALIZER.Deserialize<Dictionary<string,TennoItem>>(json_reader);

但是我得到了字符串和空十项

我看到位置可以是:

1."位置":空
2."位置": [ 字符串 ]
3."位置": ["字符串":"字符串"]

我该如何处理? 使用自定义转换器?

建议?

使基类继承自字典:

class TennoItem : Dictionary<string, TennoData>
{
}

你应该使用列表而不是数组:

编辑:dbc 是正确的,从第 261 行开始的位置是一个对象。尝试使用对象类型:

class TennoData
{
    [JsonProperty("Locations")]
    public List<object> Locations { get; set; }
    [JsonProperty("Rotation A")]
    public List<string> RotationA { get; set; }
    [JsonProperty("Rotation B")]
    public List<string> RotationB { get; set; }
    [JsonProperty("Rotation C")]
    public List<string> RotationC { get; set; }    
}

然后:

SERIALIZER.Deserialize<TennoItem>(json_reader);

或者尝试将位置设置为字典对象:

class TennoData
{
    [JsonProperty("Locations")]
    public List<Location> Locations { get; set; }
    [JsonProperty("Rotation A")]
    public List<string> RotationA { get; set; }
    [JsonProperty("Rotation B")]
    public List<string> RotationB { get; set; }
    [JsonProperty("Rotation C")]
    public List<string> RotationC { get; set; }    
}
class Location : Dictionary<string, string>
{
}

相关内容

  • 没有找到相关文章

最新更新