C#.net json 反序列 解析

{"cols":["realname","age","sncode"],"types":["VARCHAR","VARCHAR","VARCHAR"],"rows":[["小张","20","sn9012"],["小李","25","sn1470"]]}

以上怎么解析 反序列化 为 集合呢?请问

//定义实体类

public class Logs //父类
{
public string[] types { get; set; }
public Row[] rows { get; set; }
}

public class Row //子类
{
public string IP { get; set; }
public string NAME { get; set; }
public string YONGTU { get; set; }
public string DIR { get; set; }
public string OWNER { get; set; }
public string FENZU { get; set; }
public string QIDONG { get; set; }
public string PTYPE { get; set; }
public int LEVEL { get; set; }
public string BEIZHU { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{

string Sqlstr ="http://192.168.1.4:8090/Derby_JQuery?sqlSTR=Select * From dbo.Logs";
WebClient wc = new WebClient();
string json = wc.DownloadString(Sqlstr);
var data = JsonConvert.DeserializeObject(json);
}

创建一个和json 一样的class:

class MyTable{
List

cols;
List types;
List rows;
}
这里相应的创建Col , Row ,和MyType:
{} ...

然后使用:
new JavaScriptSerializer().Deserialize(jsonData);

jsonData 是你的json串

如果你用的是.NET 4.5,可以使用dynamic,可以避免定义类,特别是属性不确定的时候

  1. 引入:System.Web.Extension.dll (.Net 4.5才有)
  2. 修改json :string json = "[{name:\"小张\",age:\"20\",code:\"sn9012\"},{name:\"小李\",age:\"25\",code:\"sn1470\"}]";
  3. var obj = new JavaScriptSerializer().Deserialize(json);

如果使用.NET 4.0+,这里有个不需要定义类型而直接解析的办法:http://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object

建议人用Json.net试一下

参考这里,能解决你的问题。http://blog.csdn.net/chinacsharper/article/details/9246627