/* 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! */ namespace SimpleJSON { internal class JSONLazyCreator : JSONNode { private JSONNode m_Node; private string m_Key; public override JSONNode this[int aIndex] { get { return new JSONLazyCreator(this); } set { JSONArray jSONArray = new JSONArray(); jSONArray.Add(value); Set(jSONArray); } } public override JSONNode this[string aKey] { get { return new JSONLazyCreator(this, aKey); } set { JSONClass jSONClass = new JSONClass(); jSONClass.Add(aKey, value); Set(jSONClass); } } public override int AsInt { get { JSONData aVal = new JSONData(0); Set(aVal); return 0; } set { JSONData aVal = new JSONData(value); Set(aVal); } } public override float AsFloat { get { JSONData aVal = new JSONData(0f); Set(aVal); return 0f; } set { JSONData aVal = new JSONData(value); Set(aVal); } } public override double AsDouble { get { JSONData aVal = new JSONData(0.0); Set(aVal); return 0.0; } set { JSONData aVal = new JSONData(value); Set(aVal); } } public override bool AsBool { get { JSONData aVal = new JSONData(aData: false); Set(aVal); return false; } set { JSONData aVal = new JSONData(value); Set(aVal); } } public override JSONArray AsArray { get { JSONArray jSONArray = new JSONArray(); Set(jSONArray); return jSONArray; } } public override JSONClass AsObject { get { JSONClass jSONClass = new JSONClass(); Set(jSONClass); return jSONClass; } } public JSONLazyCreator(JSONNode aNode) { m_Node = aNode; m_Key = null; } public JSONLazyCreator(JSONNode aNode, string aKey) { m_Node = aNode; m_Key = aKey; } private void Set(JSONNode aVal) { if (m_Key == null) { m_Node.Add(aVal); } else { m_Node.Add(m_Key, aVal); } m_Node = null; } public override void Add(JSONNode aItem) { JSONArray jSONArray = new JSONArray(); jSONArray.Add(aItem); Set(jSONArray); } public override void Add(string aKey, JSONNode aItem) { JSONClass jSONClass = new JSONClass(); jSONClass.Add(aKey, aItem); Set(jSONClass); } public static bool operator ==(JSONLazyCreator a, object b) { if (b == null) { return true; } return object.ReferenceEquals(a, b); } public static bool operator !=(JSONLazyCreator a, object b) { return !(a == b); } public override bool Equals(object obj) { if (obj == null) { return true; } return object.ReferenceEquals(this, obj); } public override int GetHashCode() { return base.GetHashCode(); } public override string ToString() { return string.Empty; } public override string ToString(string aPrefix) { return string.Empty; } } }