123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- namespace I2.Loc.SimpleJSON
- {
- public class JSONArray : JSONNode, IEnumerable
- {
- public override JSONNode this[int aIndex]
- {
- get
- {
- if (aIndex < 0 || aIndex >= this.m_List.Count)
- {
- return new JSONLazyCreator(this);
- }
- return this.m_List[aIndex];
- }
- set
- {
- if (aIndex < 0 || aIndex >= this.m_List.Count)
- {
- this.m_List.Add(value);
- }
- else
- {
- this.m_List[aIndex] = value;
- }
- }
- }
- public override JSONNode this[string aKey]
- {
- get
- {
- return new JSONLazyCreator(this);
- }
- set
- {
- this.m_List.Add(value);
- }
- }
- public override int Count
- {
- get
- {
- return this.m_List.Count;
- }
- }
- public override void Add(string aKey, JSONNode aItem)
- {
- this.m_List.Add(aItem);
- }
- public override JSONNode Remove(int aIndex)
- {
- if (aIndex < 0 || aIndex >= this.m_List.Count)
- {
- return null;
- }
- JSONNode result = this.m_List[aIndex];
- this.m_List.RemoveAt(aIndex);
- return result;
- }
- public override JSONNode Remove(JSONNode aNode)
- {
- this.m_List.Remove(aNode);
- return aNode;
- }
- public override IEnumerable<JSONNode> Childs
- {
- get
- {
- foreach (JSONNode N in this.m_List)
- {
- yield return N;
- }
- yield break;
- }
- }
- public IEnumerator GetEnumerator()
- {
- foreach (JSONNode N in this.m_List)
- {
- yield return N;
- }
- yield break;
- }
- public override string ToString()
- {
- string text = "[ ";
- foreach (JSONNode jsonnode in this.m_List)
- {
- if (text.Length > 2)
- {
- text += ", ";
- }
- text += jsonnode.ToString();
- }
- text += " ]";
- return text;
- }
- public override string ToString(string aPrefix)
- {
- string text = "[ ";
- foreach (JSONNode jsonnode in this.m_List)
- {
- if (text.Length > 3)
- {
- text += ", ";
- }
- text = text + "\n" + aPrefix + " ";
- text += jsonnode.ToString(aPrefix + " ");
- }
- text = text + "\n" + aPrefix + "]";
- return text;
- }
- public override void Serialize(BinaryWriter aWriter)
- {
- aWriter.Write(1);
- aWriter.Write(this.m_List.Count);
- for (int i = 0; i < this.m_List.Count; i++)
- {
- this.m_List[i].Serialize(aWriter);
- }
- }
- private List<JSONNode> m_List = new List<JSONNode>();
- }
- }
|