private void DeserializeCollection(Collection collection, JObject json) { DeserializeContainer(collection, json); var itemsProp = json.Property("$items"); if (!itemsProp.HasValues || itemsProp.Value.Type != JTokenType.Object) throw new ArgumentException(Strings.JsonProductSerializer.InvalidItems); var itemsJson = (JObject)itemsProp.Value; foreach (var itemProp in itemsJson.Properties().Where(x => !x.Name.StartsWith("$") && x.HasValues && x.Value.Type == JTokenType.Object)) { var itemJson = (JObject)itemProp.Value; var itemSchemaId = GetSchema(itemJson); DeserializeElement(collection.CreateItem(itemProp.Name, itemSchemaId), itemJson); } }