private BasicParam[] ParseBasicParam(JsonReader r) { if (!r.Read() || r.TokenType != JsonToken.StartArray) throw new InvalidOperationException(); var values = new List<BasicParam>(); while (r.Read() && r.TokenType != JsonToken.EndArray) { if (r.TokenType != JsonToken.StartObject) throw new InvalidOperationException(); if (!r.Read() || r.TokenType != JsonToken.PropertyName) throw new InvalidOperationException(); var key = r.Value.ToString(); var value = r.ReadSingle(); values.Add(new BasicParam { Param = key, Value = value }); if (!r.Read() || r.TokenType != JsonToken.EndObject) throw new InvalidOperationException(); } return values.ToArray(); }