Я взял ваш код и поместил его в небольшое консольное приложение. У меня это работает так:
class Program
{
static void Main(string[] args)
{
string json = @"{""lastUpdateId"":836890951,""bids"":[[""0.02106900"",""0.56000000""],[""0.02106800"",""1.38000000""],[""0.02106600"",""3.63600000""],[""0.02106500"",""34.28000000""],[""0.02106100"",""41.49400000""],[""0.02105900"",""1.82500000""],[""0.02105800"",""17.91500000""],[""0.02105700"",""23.73300000""],[""0.02105600"",""28.47900000""],[""0.02105500"",""18.37500000""]],""asks"":[[""0.02107100"",""0.36600000""],[""0.02107300"",""0.47400000""],[""0.02107500"",""43.56200000""],[""0.02107600"",""28.49700000""],[""0.02107700"",""10.37400000""],[""0.02107800"",""8.00000000""],[""0.02107900"",""17.35500000""],[""0.02108100"",""23.74100000""],[""0.02108200"",""1.35200000""],[""0.02108300"",""2.31900000""]]}";
OrderBook orderBook = Newtonsoft.Json.JsonConvert.DeserializeObject<OrderBook>(json);
}
}
[Serializable]
public partial class OrderBook
{
public long lastUpdateId { get; set; }
public List<List<double>> bids { get; set; }
public List<List<double>> asks { get; set; }
}
Лично мне действительно нравится работать с Lists<>'s
вместо Array's
. Они обеспечивают гораздо большую гибкость и функциональность и с ними легче работать.