C# JSON int数组到DataContract数组
我在将json响应从google的API转换为DataContract类时遇到了麻烦。特别是在尝试将int数组从JSON转换为DataContract中的int数组时 以下是我到目前为止所做的 下面是JSON响应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" },
{
"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
调用序列化不是序列化程序。您能否编辑问题以包含异常的完整回溯?