在此先感谢您的帮助。我正在使用C#和Newtonsoft.Json来解析Bitfinex剩余调用的响应。这些不是对象数组,而是“值数组”和嵌套的“值数组数组”。
在下面从我这里收集的代码中,“ Test1”和“ Test2”都可以正常工作。但是,这实际上并不是我想要的! Test3和Test4是我要处理的结构类型。 (请注意,没有大括号!)
请给我指出正确的方向。
string Test1 = @"[123.456,""abc""]";
RootItem ri = JsonConvert.DeserializeObject<RootItem>(Test1);
string Test2 = @"{""roots"":[[123.456,""abc""],[789.012,""xyz""]]}";
ListRoot r = JsonConvert.DeserializeObject<ListRoot>(Test2);
string Test3 = @"[[123.456,""abc""],[789.012,""xyz""]]";
string Test4 = @"[""aabbcc"",102030,[[123.456,""abc""],[789.012,""xyz""]],""ddeeff"",405060]";
public class ListRoot
{
[JsonProperty("roots")]
public List<RootItem> ListRoots { get; set; }
}
[JsonConverter(typeof(JCRootItem))]
public class RootItem
{
public class JCRootItem : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return (objectType == typeof(RootItem));
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
JArray ja = JArray.Load(reader);
return new RootItem
{
DecimalOne = (decimal)ja[0],
StringTwo = (string)ja[1],
};
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { }
}
public decimal DecimalOne { get; set; }
public string StringTwo { get; set; }
}