private void DeserializeContainer(Container container, JObject json)
        {
            DeserializeComponent(container, json);

            foreach (var componentProp in json.Properties().Where(x =>
                !x.Name.StartsWith("$") && x.HasValues && x.Value.Type == JTokenType.Object))
            {
                var componentJson = (JObject)componentProp.Value;
                var componentSchemaId = GetSchema(componentJson);

                if (componentJson.Property("$items") != null)
                {
                    DeserializeCollection(container.CreateCollection(componentProp.Name, componentSchemaId), componentJson);
                }
                else
                {
                    DeserializeElement(container.CreateElement(componentProp.Name, componentSchemaId), componentJson);
                }
            }
        }