diff --git a/Scripts/UI/Component/ChartComponent.cs b/Scripts/UI/Component/ChartComponent.cs
new file mode 100644
index 00000000..f0313dd3
--- /dev/null
+++ b/Scripts/UI/Component/ChartComponent.cs
@@ -0,0 +1,35 @@
+using System;
+using UnityEngine;
+
+namespace XCharts
+{
+ public class ChartComponent
+ {
+ [SerializeField] protected string m_JsonData;
+ [SerializeField] protected bool m_DataFromJson;
+
+ ///
+ /// json格式的字符串数据
+ ///
+ ///
+ public string jsonData { get { return m_JsonData; } set { m_JsonData = value; ParseJsonData(value); } }
+
+ public void OnAfterDeserialize()
+ {
+ if (m_DataFromJson)
+ {
+ ParseJsonData(m_JsonData);
+ m_DataFromJson = false;
+ }
+ }
+
+ public void OnBeforeSerialize()
+ {
+ }
+
+ public virtual void ParseJsonData(string json)
+ {
+ throw new Exception("no support yet");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Scripts/UI/Component/ChartComponent.cs.meta b/Scripts/UI/Component/ChartComponent.cs.meta
new file mode 100644
index 00000000..7557b538
--- /dev/null
+++ b/Scripts/UI/Component/ChartComponent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b0af5e768fe0e407cb5b023b37c41597
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Scripts/UI/Component/Main/Axis.cs b/Scripts/UI/Component/Main/Axis.cs
index 641dbfb8..e62fd886 100644
--- a/Scripts/UI/Component/Main/Axis.cs
+++ b/Scripts/UI/Component/Main/Axis.cs
@@ -11,7 +11,7 @@ namespace XCharts
/// 直角坐标系的坐标轴组件。
///
[System.Serializable]
- public class Axis : JsonDataSupport, IEquatable
+ public class Axis : MainComponent, IEquatable
{
///
/// the type of axis.
diff --git a/Scripts/UI/Component/Main/DataZoom.cs b/Scripts/UI/Component/Main/DataZoom.cs
index cc6921a4..08da0b98 100644
--- a/Scripts/UI/Component/Main/DataZoom.cs
+++ b/Scripts/UI/Component/Main/DataZoom.cs
@@ -10,7 +10,7 @@ namespace XCharts
/// DataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。
///
[System.Serializable]
- public class DataZoom
+ public class DataZoom : MainComponent
{
///
/// Generally dataZoom component zoom or roam coordinate system through data filtering
diff --git a/Scripts/UI/Component/Main/Grid.cs b/Scripts/UI/Component/Main/Grid.cs
index 2cc1852d..ab36bae8 100644
--- a/Scripts/UI/Component/Main/Grid.cs
+++ b/Scripts/UI/Component/Main/Grid.cs
@@ -15,7 +15,7 @@ namespace XCharts
///
///
[Serializable]
- public class Grid : IEquatable
+ public class Grid : MainComponent, IEquatable
{
[SerializeField] private bool m_Show = true;
[SerializeField] private float m_Left;
diff --git a/Scripts/UI/Component/Main/Legend.cs b/Scripts/UI/Component/Main/Legend.cs
index bebb6721..0a3ed078 100644
--- a/Scripts/UI/Component/Main/Legend.cs
+++ b/Scripts/UI/Component/Main/Legend.cs
@@ -11,7 +11,7 @@ namespace XCharts
/// 图例组件展现了不同系列的标记,颜色和名字。可以通过点击图例控制哪些系列不显示。
///
[System.Serializable]
- public class Legend : JsonDataSupport, IPropertyChanged, IEquatable