作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
帮助处理JSON反序列化正确答案。例如,我们有以下内容的 JSON 响应:
{"variant":"otvet1",
"source":"otvet2",
"items":[
{"list":"512"},
{"vist":"315"},
{"zist":"561"}]}
使用以下代码反序列化:
[DataContract]
public partial class ItemsList
{
[DataMember(Name = "list")]
public string lisType { get; set; }
[DataMember(Name = "vist")]
public string vistType { get; set; }
[DataMember(Name = "zist")]
public string zistType { get; set; }
}
[DataContract]
public partial class SourceList
{
[DataMember(Name = "variant")]
public string variantType { get; set; }
[DataMember(Name = "source")]
public string vistType { get; set; }
[DataMember(Name = "items")]
public List <ItemsList> TestItemsList { get; set; }
}
public class JsonStringSerializer
{
public static T Deserialize<T>(string strData) where T : class
{
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strData));
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
T tRet = (T)ser.ReadObject(ms);
ms.Close();
return (tRet);
}
}
private static SourceList SourceTempList;
SourceTempList = JsonStringSerializer.Deserialize<SourceList>(e.Result); //in e.Result JSON response
在前面的代码中,它可以工作,但是如果你改变 JSON 响应,它就不起作用了......新的 JSON 响应:
{"variant":"otvet1",
"source":"otvet2",
"items":[3,
{"list":"512"},
{"vist":"315"},
{"zist":"561"}]}
在这种情况下,反序列化的c#代码不起作用...出现了第 3 个项目,请告诉我如何反序列化对此的 JSON 响应?可以列出 vist 和 zist ...帮助我...请
最佳答案
从历史上看,DataContractJsonSerializer 已被视为已损坏。建议使用 JSON.Net http://james.newtonking.com/projects/json-net.aspx
关于c# - 如何在 C# 中反序列化 JSON 字符串是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558162/
我是一名优秀的程序员,十分优秀!