using System; using System.Text; using System.Collections.Generic; using ln.json.mapping; namespace ln.json { public class JSONArray : JSONValue { public override IEnumerable Children => Values; public override bool HasChildren => true; public int Count => values.Count; public override object ToNative() { return JSONMapper.DefaultMapper.FromJson(this, typeof(object[])); } JSONValue[] Values { get => values.ToArray(); set { values.Clear(); values.AddRange(value); } } List values = new List(); public JSONArray() : base(JSONValueType.ARRAY) { } public override JSONValue this[int index] { get => values[index]; set => values[index] = value; } public JSONArray Add(JSONValue value){ values.Add(value); return this; } public JSONArray Remove(int index) { values.RemoveAt(index); return this; } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('['); IEnumerator kenum = values.GetEnumerator(); if (kenum.MoveNext()) do { sb.Append(kenum.Current.ToString()); if (!kenum.MoveNext()) break; sb.Append(','); } while (true); sb.Append(']'); return sb.ToString(); } } }