public override byte[] Serialise(bool isNested = false) {
            using (var writer = new StreamWriter(new MemoryStream(), new UTF8Encoding(false))) {
                if (!string.IsNullOrEmpty(_objectName))
                    writer.Write(string.Concat("\"", _objectName, "\":"));
                writer.Write("[");

                var values = _values.ToList();
                var valueWriter = new JsonValueWriter(_propertyType);

                for (var i = 0; i < values.Count; i++) {
                    var isFinalItem = i.Equals(values.Count - 1);
                    valueWriter.Write(values[i], isFinalItem, writer);
                }

                writer.Write("]");
                writer.Flush();
                return ((MemoryStream) writer.BaseStream).ToArray();
            }
        }
        public override byte[] Serialise(bool isNested = false)
        {
            using (var writer = new StreamWriter(new MemoryStream(), new UTF8Encoding(false))) {
                if (!string.IsNullOrEmpty(_objectName))
                {
                    writer.Write(string.Concat("\"", _objectName, "\":"));
                }
                writer.Write("[");

                var values      = _values.ToList();
                var valueWriter = new JsonValueWriter(_propertyType);

                for (var i = 0; i < values.Count; i++)
                {
                    var isFinalItem = i.Equals(values.Count - 1);
                    valueWriter.Write(values[i], isFinalItem, writer);
                }

                writer.Write("]");
                writer.Flush();
                return(((MemoryStream)writer.BaseStream).ToArray());
            }
        }