javascript到C#代码数组实现

时间:2012-01-19 19:27:44

标签: c# generics

这是javascript代码,我想将其更改为C#代码,同样如此,b / c再次将其更改为javascript对象

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

实际上我正在编写一个包装器,它将使用C#语言中的值,然后通过json serialize我将代码转换为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

3 个答案:

答案 0 :(得分:2)

您需要List object个数组来获取您正在寻找的输出。我使用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);
    }
}

答案 1 :(得分:1)

不,你最好有一个字典数组,每个字典都等于对象,它的键和值将是他的属性和值

答案 2 :(得分:0)

你可以使用看起来很像JS代码的匿名类型,但是没有关于percentRate的单个quoutes。你也可以使用元组Tuple<string, float>,它基本上是一对值。多维或锯齿状数组是另一种选择。