2012-01-19 73 views
0

這是javascript代碼,我想把它換成C#代碼,與此相同的,B/C我再次將其更改爲JavaScript對象JavaScript來的C#代碼數組實現

data: [['2-2010',45.0],['IE', 26.8],[ 'Chrome',12.8],['Safari',8.5],['Opera',6.2],['Others', 0.7]] 

其實我m編寫一個包裝器,它將採用C#語言的值,然後通過json序列化,然後將代碼轉換爲json。

我不能像這樣做,B/C創造JSON的時候會像

C#

class dataArray 
{ 
    public string browserId; 
    public double percentRate; 
} 

JS通過上述類生成一些東西但不適用於我的可變瀏覽器b/c和percentRate

dataArray = {browser: 'chrome', 'percentRate':30.3} 

我期待着事端摹這樣List<string,double>,但它永遠不會成功:d

回答

2

您需要Listobject數組才能獲得您要查找的輸出。我使用JSON.net作爲下面的示例代碼。

class Program 
{ 
    static void Main(string[] args) 
    { 
     List<object[]> kvp = new List<object[]>() 
     { 
      new object[] {"2-2010", 45}, 
      new object[] {"IE", 26.8}, 
      new object[] {"Chrome", 12.8}, 
      new object[] {"Safari", 8.5} 
     }; 

     var json = JsonConvert.SerializeObject(kvp); 

     Console.WriteLine(json); 

     //deserialize it to a List<object[]> 
     var json2 = "[[\"2-2010\",45.0],[\"IE\", 26.8],[\"Chrome\",12.8],[\"Safari\",8.5]]"; 
     var kvp2 = JsonConvert.DeserializeObject<List<object[]>>(json2); 
    } 
} 
+0

感謝它的工作! – MZH

1

不,你最好有字典的數組,每個字典將等於對象及其項和值將是他的財產和價值

+0

爲什麼你提倡一個字典數組而不是簡單的Dictionary ? – GGulati

0

你可以使用匿名類型,它看起來很像JS代碼,但是在percentRate周圍沒有單一的quoutes。你也可以使用元組,這是Tuple<string, float>,基本上是一對值。多維或鋸齒陣列是另一種選擇。