2 fanenmin fanenmin 于 2014.11.19 19:00 提问

C#.net json 反序列 解析

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

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

8个回答

fanenmin
fanenmin   2014.11.29 13:33
已采纳

//定义实体类

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);
}

csharp25
csharp25   2014.11.19 19:07

创建一个和json 一样的class:

class MyTable{
List

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

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

jsonData 是你的json串

fanenmin
fanenmin 可以具体一些么? 代码详细些 谢谢
大约 3 年之前 回复
guwei4037
guwei4037   Ds   Rxr 2014.11.29 13:38

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

save4me
save4me   Ds   Rxr 2014.11.20 10:04

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

csharp25
csharp25   2014.11.20 10:17
  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);
caozhy
caozhy   Ds   Rxr 2014.11.20 10:35

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

q107770540
q107770540   Ds   Rxr 2014.11.20 13:06

建议人用Json.net试一下

xianfajushi
xianfajushi   2014.11.20 17:07

自己写一个专门的解析算法,有个问题,得到的实际字符串是什么样的?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!