2017-07-31 6 views
0

ハイチャートに取り組んで、C#のajaxでデータを送信しています。それが正常に動作し、私は単純に、一連のプロパティを作成グラフにデータを送信しなければならないとき、今、私が以前にここC#でこのタイプのjsonオブジェクトを作成するには?

チャートデータのいくつかの異なる種類で立ち往生しています、カテゴリなど

public class SeriesQuarter2 
{ 
    public string id { get; set; } 
    public string name { get; set; } 
    public List<Data2> data { get; set; } 
} 

とのリストを埋めました。このプロパティと私はこの

のようなルックスを作りたい

、javascriptserializer を使用して、それをシリアル化し、このJSON文字列を格納し、私はJSON.parseを使用して解析しアヤックス成功に戻るので、グラフの系列3210

は今、これは結構ですが、今私は、異なる特性を持つオブジェクトのこのタイプを行いますどのようにシリーズ

series: [ 
    { 
     type: 'column', 
     name: 'Tokyo', 
     data: [-49.9, 71.5] 
    }, 
    { 
     type: 'column', 
     name: 'New York', 
     data: [83.6, -78.8] 
    }, 
    { 
     type: 'scatter', 
     showInLegend: false, 
     data: [ 
      { 
       name:'Mydata', 
       y: 200, 
       mydata : 4, 
       color:'red', 
       marker: { 
        symbol: 'url(http://www.highcharts.com/demo/gfx/snow.png)' 
       } 
      }, 
      { 
       name:'Mydata2', 
       y: 200, 
       mydata : -4, 
       marker: { 
        symbol: 'url(http://www.highcharts.com/demo/gfx/sun.png)' 
       } 
      } 
     ] 
    } 
] 

このタイプのオブジェクトを送信する必要がありますか?

+3

class RootObject { public List<SeriesItem> series { get; set; } = new List<SeriesItem>(); } class SeriesItem { public string type { get; set; } public string name { get; set; } public bool? showInLegend { get; set; } public List<object> data { get; set; } = new List<object>(); } class OtherData { public int y { get; set; } public int mydata { get; set; } public string name { get; set; } public string color { get; set; } public Marker marker { get; set; } } class Marker { public string symbol { get; set; } } 

使い方は? – Reniuz

+0

@ Reenuz in seriesデータ変更のプロパティがあり、最初に番号のリストを持っていて、別のプロパティ名、y、mydataなどを持っています –

+0

開始から... jsonシリーズでは、データ。しかし!異なるデータには名前とデータのようなフィールドがあります。したがって、フィールド名とジェネリック型のデータフィールドを持つ基本クラスを作成できます。または、単にjson-> c#クラスコンバータツールを見つけて、それが何を生成するか見ることができます。 – Reniuz

答えて

2

[OK]をので、ここでそれはのように見ることができる方法を考えです:異なる特性を有する異なる種類を作る

var item1 = new SeriesItem(); 
item1.type = "column"; 
item1.name = "Tokyo"; 
item1.data = new List<object>(); 
item1.data.AddRange(numbersData); 
item1.data.Add(-49.9); 
item1.data.Add(71.5); 

var otherData1 = new OtherData(); 
otherData1.name = "MyData"; 
//...fill other fields 

var item2 = new SeriesItem(); 
item2.type = "scatter"; 
item2.data.Add(otherData1); 

var jsonObject = new RootObject(); 
jsonObject.series.Add(item1); 
jsonObject.series.Add(item2); 

//convert jsonObject to json 
+0

Thankx私の友人 –

+0

問題ありません。私はこれをテストしていないことに注意してください。 – Reniuz

+0

私はそれをテストしました –

0

私の提案は、あなたが最初にC#でInterface概念を理解しておく必要があります...、シンプルで使いやすい、無料のNewtonsoft json.netのような第三者のシリアライザを使用

+0

OPはjsonからクラスを作成しようとしています。このフレームワークはそうすることができますか? – Reniuz

+0

私はあなたがオンラインコンバータを使用できるようにクラス作成を一度行うと仮定します。 [例](https://jsonutils.com/) – Daghan

-2

です。そして、あなただけが複雑なJSONオブジェクトをC#で扱うことができます。

+1

この場合、なぜ、どこにインターフェイスが必要ですか? – Reniuz

関連する問題