static void MergeRecur(KJSON left, KJSON right) { if(right.type == KJSON.Type.OBJECT) { for(int i = 0; i < right.list.Count; i++) { if(right.keys[i] != null) { string key = (string)right.keys[i]; KJSON val = (KJSON)right.list[i]; if(val.type == KJSON.Type.ARRAY || val.type == KJSON.Type.OBJECT) { if(left.HasField(key)) MergeRecur(left[key], val); else left.AddField(key, val); } else { if(left.HasField(key)) left.SetField(key, val); else left.AddField(key, val); } } } }// else left.list.Add(right.list); }