void LoadObjectForEachElement(CategoryData data)
    {
        BarChart bar  = BarObject.GetComponent <BarChart>();
        var      obj  = mParser.GetObject(data.DataObjectName);
        int      size = bar.DataSource.TotalGroups;

        if (size < 0) // this is not an array , show warning
        {
            Debug.LogWarning("DataType " + data.DataType + " does not match category " + data.Name);
            return;
        }
        try
        {
            for (int i = 0; i < size; i++)
            {
                string group    = bar.DataSource.GetGroupName(i);
                var    groupObj = mParser.GetChildObject(obj, group);

                double val = ParseItem(mParser.ObjectValue(groupObj), null);

                bar.DataSource.SetValue(data.Name, group, val);
            }
        }
        catch (Exception e)
        {
            Debug.LogWarning("Data for category " + data.Name + " does not match the specified format. Ended with exception : " + e.ToString());
        }
    }
    void LoadObjectforEachElement()
    {
        PieChart pie = PieObject.GetComponent <PieChart>();
        var      obj = mParser.GetObject(ParentObject);

        pie.DataSource.Clear();
        int i = 0;

        foreach (var pair in mParser.GetAllChildObjects(obj))
        {
            int    visualIndex = Math.Min(i, mCategoryVisualStyle.Length - 1);
            object visualStyle = mCategoryVisualStyle[visualIndex];
            pie.DataSource.AddCategory(pair.Key, null);
            pie.DataSource.RestoreCategory(pair.Key, visualStyle);
            double val = ParseItem(mParser.ObjectValue(pair.Value), null);
            pie.DataSource.SetValue(pair.Key, val);
            i++;
        }
    }