C# JSON int数组到DataContract数组

C# JSON int数组到DataContract数组,c#,json,wpf,windows-phone-8,datacontract,C#,Json,Wpf,Windows Phone 8,Datacontract,我在将json响应从google的API转换为DataContract类时遇到了麻烦。特别是在尝试将int数组从JSON转换为DataContract中的int数组时 以下是我到目前为止所做的 下面是JSON响应 { "kind": "youtubeAnalytics#resultTable", "columnHeaders": [ { "name": "views", "columnType": "METRIC", "dataType": "INTEGER" },

我在将json响应从google的API转换为DataContract类时遇到了麻烦。特别是在尝试将int数组从JSON转换为DataContract中的int数组时

以下是我到目前为止所做的

下面是JSON响应

{
 "kind": "youtubeAnalytics#resultTable",
 "columnHeaders": [
  {
   "name": "views",
   "columnType": "METRIC",
   "dataType": "INTEGER"
  },
  {
   "name": "likes",
   "columnType": "METRIC",
   "dataType": "INTEGER"
  },
  {
   "name": "dislikes",
   "columnType": "METRIC",
   "dataType": "INTEGER"
  }
 ],
 "rows": [
  [
   2162435,
   871,
   907
  ]
 ]
}
这是我的数据契约类

[DataContract]
public class AnalyticsData
{
    [DataMember(Name = "kind")]
    public string Kind { get; set; }

    [DataMember(Name = "columnHeaders")]
    public ColumnRows[] ColumnHeaders { get; set; }

    [DataMember(Name = "rows")]
    public int[][] rows { get; set; }  //<--------

}

[DataContract]
public class ColumnRows
{
    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "columnType")]
    public string ColumnType { get; set; }

    [DataMember(Name = "dataType")]
    public string DataType { get; set; }
}
[DataContract]
公共类分析数据
{
[DataMember(Name=“kind”)]
公共字符串种类{get;set;}
[DataMember(Name=“columnHeaders”)]
公共ColumnRows[]ColumnHeaders{get;set;}
[DataMember(Name=“rows”)]

public int[][]行{get;set;}//System.FormatException:输入字符串的格式不正确。

使用jsonconvert即可

        [TestMethod]
    public void test()
    {
        string json =
            "{ \"kind\": \"youtubeAnalytics#resultTable\", \"columnHeaders\": [  {   \"name\":\"views\",   \"columnType\": \"METRIC\",   \"dataType\": \"INTEGER\"  },  {   \"name\": \"likes\",   \"columnType\": \"METRIC\",   \"dataType\": \"INTEGER\" },  {   \"name\": \"dislikes\",   \"columnType\": \"METRIC\",   \"dataType\":\"INTEGER\"  } ], \"rows\": [  [   2162435,   871,907  ] ]}";

        AnalyticsData d = JsonConvert.DeserializeObject<AnalyticsData>(json);

    }
[TestMethod]
公开无效测试()
{
字符串json=
“{\'kind\\”:\'youtubeAnalytics\'resultTable\”,\'columnHeaders\':[{\'name\':\'views\',\'columnType\':\'METRIC\',\'dataType\':\'likes\',\'columnType\':'METRIC\',\'dataType\':'INTEGER\',{\'name\':'dislikes\','columnType\':'METRIC\','[   2162435,   871,907  ] ]}";
AnalyticsData d=JsonConvert.DeserializeObject(json);
}

不能使用列表代替int[]?你在使用哪个序列化库?使用
DataContractJsonSerializer
这对我来说很有效--我没有发现异常。什么序列化器?什么是完整的回溯?这些是复制错误的实际类&JSON,还是简化了的类?@dbc我使用的序列化类是System.Runtime.serialization.Im通过
var analyticsData=wait request.GetValueFromRequest();Debug.WriteLine(analyticsData.Rows[0][1]);
System.Runtime.Serialization
调用序列化不是序列化程序。您能否编辑问题以包含异常的完整回溯?