using System.Collections; using System.Collections.Generic; using UnityEngine; using SimpleJSON; using System.Linq; namespace AdvancedJSON { public class Core { //*********************************************************************************************************************** //private, protected //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //internal //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //public static public static JSONNode Merge(JSONNode parentNode, JSONNode addedNode) { JSONNode ReturnedValue = parentNode; if(parentNode == null) { //Debug.LogWarning("AdvancedJSON.Core.Merge: Empty Parent! Returned the AddedNode."); return addedNode; } //Prepare Values string[] Keys = addedNode.Keys.ToArray(); //Go through addedNodes for (int i = 0; i < Keys.Length; i++) { //Debug.LogWarning("AdvancedJSON.Core.Merge: Merging Key: " + Keys[i]); //Is it an Object? if (addedNode[Keys[i]].IsObject) { //Does the Object exist in the parent? if (parentNode[Keys[i]] != null) { //Debug.LogWarning("AdvancedJSON.Core.Merge: Key exists in Parent. Merging SubNodes..."); //Go Deeper ReturnedValue.Add(Keys[i], Merge(parentNode[Keys[i]], addedNode[Keys[i]])); } else { //Debug.LogWarning("AdvancedJSON.Core.Merge: Key doesn't exist in Parent. Adding NodeStructure."); //Add Node to Parent ReturnedValue.Add(Keys[i], addedNode[Keys[i]]); } } else { //Debug.LogWarning("AdvancedJSON.Core.Merge: End reached. Adding Node: " + addedNode.ToString()); //Add Object to Parent ReturnedValue.Add(Keys[i], addedNode); } } return ReturnedValue; } //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //public //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ //*********************************************************************************************************************** //getter, setter //------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------ } }