首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

多叉树结合JavaScript树形组件实现无限级树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)

在Web应用程序开发领域,基于Ajax技术的JavaScript树形组件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项。目前市场上常见的JavaScript框架及组件库中均包含自己的树形组件,例如jQuery、Ext JS等,还有一些独立的树形组件,例如dhtmlxTree等,这些树形组件完美的解决了层次数据的展示问题。展示离不开数据,树形组件主要利用Ajax技术从服务器端获取数据源,数据源的格式主要包括JSON、XML等,而这些层次数据一般都存储在数据库中。“无限级树形结构”,顾名思义,没有级别的限制,它的数据通常来自数据库中的无限级层次数据,这种数据的存储表通常包括id和parentId这两个字段,以此来表示数据之间的层次关系。现在问题来了,既然树形组件的数据源采用JSON或XML等格式的字符串来组织层次数据,而层次数据又存储在数据库的表中,那么如何建立起树形组件与层次数据之间的关系,换句话说,如何将数据库中的层次数据转换成对应的层次结构的JSON或XML格式的字符串,返回给客户端的JavaScript树形组件?这就是我们要解决的关键技术问题。本文将以目前市场上比较知名的Ext JS框架为例,讲述实现无限级树形结构的方法,该方法同样适用于其它类似的JavaScript树形组件。

00

python 读取excel 生成jso

# _*_ coding: utf-8 import xlrd,sys import pickle import json data=xlrd.open_workbook("d:/test/6.xlsx") ##读取工作表,方法可以按顺序索引找,也可以使用sheet_by_name(u"Sheet1") table = data.sheet_by_index(0) ###读取内容摘要表并存入nrarr nrarr={} table1 = data.sheet_by_index(1) for ro in range(2,table1.nrows):     jj= table1.row(ro)[0].value     #print ro     if jj !="":         nr=table1.row(ro)[1].value         nrarr[jj]=nr         #print nrarr[jj].encode('gbk','ignore') ''' #for k,v in nrarr.items(): #    print k, v.encode('gbk', 'ignore')     #print k.encode('gbk'),v.encode('gbk') ##获取工作表数量 #tables = data.nsheets ##获取整行,整列的值 (返回数组) #table.row_values(n) #table.col_values(n) ##单元格操作 #cell_A1 = table.cell(0,0).value #cell_C4 = table.cell(2,3).value ##行列索引 #table.row(0)[1].value #table.col(1)[0].value ''' ##获取总行数 nrows = table.nrows ##获取列数 ncols = table.ncols list=[] for rn in range(3, nrows):     allarr={}     jn = table.row(rn)[0].value     allarr['xxx'] = jn     allarr["xx"] = table.row(rn)[10].value     allarr['xx'] =str(table.row(rn)[16].value)     #allarr['xx'] = table.row(rn)[5].value     allarr['xx'] = ""     allarr['xx'] = table.row(rn)[7].value     allarr['xx'] = table.row(rn)[8].value     allarr['xx'] = u'中文'     allarr['xx'] = table.row(rn)[4].value     allarr['xx']=nrarr[jn]     list.append(allarr) ##生成json并写入文件 js = json.dumps(list) output = open("d:/test/oo.json",'w') output.write(js) output.close() ###读json jf=json.load(open("d:/test/oo.json")) for ls in jf:     for k,v in ls.items():         print k,v.encode('gbk','ignore')         #print k,v

01
领券