JSONObject.MergeRecur C# (CSharp) Method

MergeRecur() static private method

Merge object right into left recursively
static private MergeRecur ( JSONObject, left, JSONObject, right ) : void
left JSONObject, The left (base) object
right JSONObject, The right (new) object
return void
	static void MergeRecur(JSONObject left, JSONObject right)
	{
		if (left.type == Type.NULL)
			left.Absorb(right);
		else if (left.type == Type.OBJECT && right.type == Type.OBJECT)
		{
			for (int i = 0; i < right.list.Count; i++)
			{
				string key = right.keys[i];
				if (right[i].isContainer)
				{
					if (left.HasField(key))
						MergeRecur(left[key], right[i]);
					else
						left.AddField(key, right[i]);
				}
				else
				{
					if (left.HasField(key))
						left.SetField(key, right[i]);
					else
						left.AddField(key, right[i]);
				}
			}
		}
		else if (left.type == Type.ARRAY && right.type == Type.ARRAY)
		{
			if (right.Count > left.Count)
			{
				Debug.LogError("Cannot merge arrays when right object has more elements");
				return;
			}
			for (int i = 0; i < right.list.Count; i++)
			{
				if (left[i].type == right[i].type)
				{           //Only overwrite with the same type
					if (left[i].isContainer)
						MergeRecur(left[i], right[i]);
					else
					{
						left[i] = right[i];
					}
				}
			}
		}
	}
	public void Bake()