|
|
|
|
/*
|
|
|
|
|
http://www.cgsoso.com/forum-211-1.html
|
|
|
|
|
|
|
|
|
|
CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!
|
|
|
|
|
|
|
|
|
|
CGSOSO 主打游戏开发,影视设计等CG资源素材。
|
|
|
|
|
|
|
|
|
|
插件如若商用,请务必官网购买!
|
|
|
|
|
|
|
|
|
|
daily assets update for try.
|
|
|
|
|
|
|
|
|
|
U should buy the asset from home store if u use it in your project!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
|
|
|
|
namespace SimpleJSON
|
|
|
|
|
{
|
|
|
|
|
public class JSONArray : JSONNode, IEnumerable
|
|
|
|
|
{
|
|
|
|
|
private List<JSONNode> m_List = new List<JSONNode>();
|
|
|
|
|
|
|
|
|
|
public override JSONNode this[int aIndex]
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (aIndex < 0 || aIndex >= m_List.Count)
|
|
|
|
|
{
|
|
|
|
|
return new JSONLazyCreator(this);
|
|
|
|
|
}
|
|
|
|
|
return m_List[aIndex];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (aIndex < 0 || aIndex >= m_List.Count)
|
|
|
|
|
{
|
|
|
|
|
m_List.Add(value);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_List[aIndex] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override JSONNode this[string aKey]
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return new JSONLazyCreator(this);
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
m_List.Add(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override int Count => m_List.Count;
|
|
|
|
|
|
|
|
|
|
public override IEnumerable<JSONNode> Childs
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
foreach (JSONNode item in m_List)
|
|
|
|
|
{
|
|
|
|
|
yield return item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Add(string aKey, JSONNode aItem)
|
|
|
|
|
{
|
|
|
|
|
m_List.Add(aItem);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override JSONNode Remove(int aIndex)
|
|
|
|
|
{
|
|
|
|
|
if (aIndex < 0 || aIndex >= m_List.Count)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
JSONNode result = m_List[aIndex];
|
|
|
|
|
m_List.RemoveAt(aIndex);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override JSONNode Remove(JSONNode aNode)
|
|
|
|
|
{
|
|
|
|
|
m_List.Remove(aNode);
|
|
|
|
|
return aNode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IEnumerator GetEnumerator()
|
|
|
|
|
{
|
|
|
|
|
foreach (JSONNode item in m_List)
|
|
|
|
|
{
|
|
|
|
|
yield return item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
{
|
|
|
|
|
string text = "[ ";
|
|
|
|
|
foreach (JSONNode item in m_List)
|
|
|
|
|
{
|
|
|
|
|
if (text.Length > 2)
|
|
|
|
|
{
|
|
|
|
|
text += ", ";
|
|
|
|
|
}
|
|
|
|
|
text += item.ToString();
|
|
|
|
|
}
|
|
|
|
|
return text + " ]";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override string ToString(string aPrefix)
|
|
|
|
|
{
|
|
|
|
|
string text = "[ ";
|
|
|
|
|
foreach (JSONNode item in m_List)
|
|
|
|
|
{
|
|
|
|
|
if (text.Length > 3)
|
|
|
|
|
{
|
|
|
|
|
text += ", ";
|
|
|
|
|
}
|
|
|
|
|
text = text + "\n" + aPrefix + " ";
|
|
|
|
|
text += item.ToString(aPrefix + " ");
|
|
|
|
|
}
|
|
|
|
|
return text + "\n" + aPrefix + "]";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Serialize(BinaryWriter aWriter)
|
|
|
|
|
{
|
|
|
|
|
aWriter.Write((byte)1);
|
|
|
|
|
aWriter.Write(m_List.Count);
|
|
|
|
|
for (int i = 0; i < m_List.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
m_List[i].Serialize(aWriter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|