public void LoadFromJSON()
    {
        string source = "Assets/Export/TreeNodes.json";

        using (StreamReader streamReader = File.OpenText(source))
        {
            string jsonString  = streamReader.ReadToEnd();
            Node[] daJsonNodes = JsonHelper.FromJson <Node>(jsonString);

            daNodes.Clear();
            uint iHighestID = 0;
            for (int i = 0; i < daJsonNodes.Length; i++)
            {
                ConversationNode n = ScriptableObject.CreateInstance <ConversationNode>();
                n.Init(daJsonNodes[i].sName, daJsonNodes[i].sText, daJsonNodes[i].vPosStart);
                n.iID         = daJsonNodes[i].iID;
                n.sScriptName = daJsonNodes[i].sScriptName;
                iHighestID    = (iHighestID > n.iID) ? iHighestID : n.iID;
                daNodes.Add(n);
            }

            DraggableNode.iIDCount = iHighestID + 1;

            List <string> daKeyWords;
            for (int i = 0; i < daJsonNodes.Length; i++)
            {
                foreach (Link link in daJsonNodes[i].daOutcomes)
                {
                    for (int u = 0; u < daNodes.Count; u++)
                    {
                        if (link.iID == daNodes[u].iID)
                        {
                            if (link.daKeywords != null)
                            {
                                daKeyWords = new List <string>(link.daKeywords);
                            }
                            else
                            {
                                daKeyWords = new List <string> {
                                }
                            };
                            daNodes[i].daOutcomes.Add(new NodeLink(daKeyWords, daNodes[u]));
                            break;
                        }
                    }
                }
            }
        }
    }