2012-01-19 48 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>,基本上是一对值。多维或锯齿阵列是另一种选择。