forked from ln-dotnet/ln.json
66 lines
1.6 KiB
C#
66 lines
1.6 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Collections.Generic;
|
|
using ln.json.mapping;
|
|
|
|
namespace ln.json
|
|
{
|
|
public class JSONArray : JSONValue
|
|
{
|
|
public override IEnumerable<JSONValue> 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<JSONValue> values = new List<JSONValue>();
|
|
|
|
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<JSONValue> 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();
|
|
}
|
|
|
|
}
|
|
}
|