我如何处理 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>
{
}