所以我试图解析一些由第三方api返回给我的JSON,看起来像:
{
"status":"ok",
"links":
[
{
"link":
{
"link_name":"Sample",
"link_id":"9999"
}
},
],//and so on with other nested properties
我创建了将 JSON 映射到的类
[DataContract]
public class JsonTestResults
{
[DataMember]
public string status { get; set; }
[DataMember]
public IEnumerable<Link> links { get; set; }
}
[DataContract]
public class Link
{
[DataMember]
public string link_name { get; set; }
[DataMember]
public string link_id { get; set; }
}
我正在通过这个反序列化器推动响应(取自这篇文章
public T Deserialise<T>( string json )
{
T obj = Activator.CreateInstance<T>( );
using (MemoryStream ms = new MemoryStream( Encoding.Unicode.GetBytes( json ) ))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer( obj.GetType( ) );
obj = (T)serializer.ReadObject( ms );
return obj;
}
}
但是,我的反序列化结果将 Link[] 的内容显示为空。(每个返回的都有一个 Link 对象,但 link_name 和 link_id 为空。)
我已经检查了this , this , this , this和this,但无法解决这个问题。我正在寻找不需要第三方库的解决方案。(根据我的主要开发人员)。
我不相信与 JSON 匹配的类有问题,但如果有人想查看它,我可以发布完整的代码。