解决方案 »
- 求本段的补完
- 如何更改dataGrid的默认列宽和高
- 打开EXCEL文件出现异常,急!
- DataGridView1为什么不能显示
- grid中如何单击按钮后,获取当前行的某列的值..
- 大家讨论一下这种C#建模方式的优缺点
- 求IEWEBCONTROLS(toolbar,tabstrip,treeview)的学习资料?
- Vs2010格式化代码的问题,蛋疼
- 在线程中打开新窗体定死的问题(13880079673(CMonkey))及各位熟悉线程的高手看看
- 什么是重载“Exit”方法未获取“1”参数?
- 用Oracl.DataAccess.Client.OracleConnection出现异常ORA-12154:TNS:无法解析指定的连接标识符
- 新手求教。关于c# winform 标题栏隐藏的问题。
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ds.WriteObject(ms, obj);
string strJSON = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return strJSON;
} private T Deserialize<T>(string sJson) where T : class
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(sJson));
T obj = (T)ds.ReadObject(ms); ms.Close();
return obj;
}http://www.cnblogs.com/dlonghow/archive/2009/02/19/1393702.html
最好构造一个相应的类
{
public string title { get; set; }
public List<Dictionary<string, string>> item { get; set; }
}
这个类就能反序列啦。试了吗?var info = JsonConvert.Deserialize<Info>(json);
Console.WriteLine(info.title);
Console.WriteLine(info.item[0]["startStation"]);
public class BType
{
public string trainCode;
public string startStation;
public string arriveStation;
public string startTime;
public string endTime;
public string takeTime;
public string trainGrade;
public string mileage;
public string hard-seat;
public string hard-seat-prc;
public string hard-sleeper1;
public string hard-sleeper1-prc;
public string hard-sleeper2;
public string hard-sleeper2-prc;
public string hard-sleeper3;
public string hard-sleeper3-prc;
}public class AType
{
public BType[] item;
public string title;
}
缺少字段不会影响 DataContractJsonSerializer 的正常运行,不会抛出异常。同样地就算多定义了字段也不会异常。比如说事后核对发现缺少vag-sleeper1-prc字段,那么在BType里边加上这个字段,再次重新运行整个程序,就行了!