在.Net中如何获取ExtJS的类结构

最近在做一个项目,需要获取ExtJS的类库结构。EXTJS官方文档中就有完整的类库参考,于是想到了通过解析官方文档来生成获得ExtJS的类库结构。

在FireFox中打开http://www.extjs.com/deploy/dev/docs/,使用FireBug查看网络请求,可以看到对http://www.extjs.com/deploy/dev/docs/output/tree.js的请求,在此请求的response中可以看到一段定义文档菜单结构的js代码,如下图:

ExtJs classData

Docs.classData定义了ExtJs的API结构,它是一个JSON对象定义,可以使用JSON.NET来将Docs.classData反序列化为.net对象,以便在.Net代码中解析extjs的类库结构,下面看看如何使用JSON.NET来解析extjs的api定义json串。

首先在.Net中定义一个类型,这个类型与ExtJs API定义的结构相同:

ExtJs API定义结构:

{

  id:””

  ,iconCls:””

  ,text:””

  ,singleClickExpand:bool

  ,children:[]

}

定义一个.net类型来表示上面的JS对象,如下:

public class ExtTreeNode{
	 public string id{get;set;}
	 public string iconCls{get;set;}
	 public string text{get;set;}
	 public string singleClickExpand{get;set;}
	 public List<ExtTreeNode> children{get;set;}	 
	 public string cls{get;set;}
	 public bool leaf{get;set;}
}

 

完整的解析代码如下:

获取ExtJs的类库结构

注意:

  1. 1 以上代码,从一个文件中读取表示extjs的类库定义的json字符串,所以如果您要自己试试这段代码,请将代码中的E:\lugreen\DevFrame\extclasslib\extjsClassLib.js 调整为您实际的文件路径。
  2. 2 以上代码使用Snippet Compiler编写,可以在Snippet Compiler中新建一个文件然后将以上代码粘贴上去运行。
  3. 由于不知道怎样上传附件,我只好将定义extjs的类库结构的JSON串粘贴到这了:

posted on 2010-01-31 19:42  lugreen  阅读(1198)  评论(0)    收藏  举报

导航