private void SaveServerDetailsToJSON(ServerDetails[] serverDetails)
    {
        string json = File.ReadAllText(this.serverListJSONPath);
        ServerDetailsCollection loadedServerData = JsonUtility.FromJson <ServerDetailsCollection>(json);

        loadedServerData.serverList = serverDetails;
        string toSaveString = JsonUtility.ToJson(loadedServerData, true);

        File.WriteAllText(this.serverListJSONPath, toSaveString);
    }
    private void PopulateServerList(ServerDetailsCollection serverData)
    {
        foreach (ServerDetails serverDetails in serverData.serverList)
        {
            GameObject newServerListItemObj =
                GameObject.Instantiate(this.serverListItemPrefab, this.contentHolder, false);

            ServerListItem newItem = newServerListItemObj.GetComponent <ServerListItem>();
            newItem.Initialise(this, serverDetails);
            this.AddServer(new Server(serverDetails, newItem));
        }
    }
    public void RefreshList()
    {
        this.EmptyList();

        // Get JSON data.
        string json = File.ReadAllText(this.serverListJSONPath);
        ServerDetailsCollection loadedServerData = JsonUtility.FromJson <ServerDetailsCollection>(json);

        // Populate server list.
        this.PopulateServerList(loadedServerData);

        this.selectedServer            = new Server(new ServerDetails("", "", ""), null);
        this.editButton.interactable   = false;
        this.joinButton.interactable   = false;
        this.removeButton.interactable = false;
    }