//定义json对象 var person= { name: 'zhangsan', pass: '123', fn: function(){ alert(this.name+"的密码="+this.pass)} } //遍历person属性包括方法,如果不想显示出方法,可用typeof(person[item])== "function"来判断 for(var item in person){ alert("person中"+item+"的值="+person[item]) }
2、动态为 json对象 添加属性
需要 使用1中的 person对象
var copyPerson={} //创建copyPerson对象,将person中的属性包括方法copy给该对象 for(var item in person){ copyPerson[item]= person[item] //这样循环就可以将person中的属性包括方法copy到copyPerson中了 } for(var item in copyPerson){ alert("copyPerson中"+item+"的值="+person[item]) }
注意:使用 Ext.apply(copyPerson, person) 也可以 将person中的所有属性包括方法 copy到 copyPerson中
3、遍历 普通js对象的 属性
//定义一个普通的js类,包含方法 var p= function (){ this.name= '李四' this.pass= '456' this.fn= function(){alert(this.name+"的密码="+this.pass) } } var pp= new p() //生成一个p类的对象 pp for(var item in pp){ //遍历pp对象中的属性,只显示出 非函数的 属性,注意不能 遍历 p这个类 if(typeof(pp[item])== "function")continue alert("p对象中"+item+"的属性="+pp[item]) }
普通的 js对象 也可以copy,copy方法和 2.动态为 json对象 添加属性 思路一样。
自己定义一个后台的TreeNode类(仿照extjs里的TreeNode类),里面可以有如下属性:
private String idprivate String text
private boolean leaf//是否是叶子节点
private Boolean checked//复选框
private TreeNode parent//父节点对象
private Collection<TreeNode> children = new TreeSet<TreeNode>()//子节点的集合
除了属性的get/set方法外,可以加如下方法:
public void addChild(TreeNode node) {
this.children.add(node)
}
public void removeChild(TreeNode node) {
this.children.remove(node)
}
然后组件树时,根据你查出的数据,new一个TreeNode然后把MenuId的值放到id里,把MenuName放到text里,然后MenuPraentId是0说明是根一级节点,然后查MenuPraentId是MenuId的孩子节点,找到之后,也是这样new个TreeNode,然后赋值,最后把上一级addChild子一级的节点,然后做个递归,构建一个完整的树
最后看你用什么方式返回给前台,如果直接返回对象给前台(dwr可以)直接就能用了。如果要返回字符串给前台,那就用jsonObject转下,toString就好了~~~到前台只要是extjs的treeNode格式的数据,tree就认了~~~
函数不需要 return,因为 json 对象会被函数直接修改。
var str1 = {"name": "apple", "sex": "21"}// 参数:prop = 属性,val = 值
function createJson(prop, val) {
// 如果 val 被忽略
if(typeof val === "undefined") {
// 删除属性
delete str1[prop]
}
else {
// 添加 或 修改
str1[prop] = val
}
}
下面为测试
// 无改动,输出 Object {name="apple", sex="21"}console.log(str1)
// 添加属性 color,值为 red
createJson("color", "red")
// 输出 Object {name="apple", sex="21", color="red"}
console.log(str1)
// 修改属性 name 的值为 banana
createJson("name", "banana")
// 输出 Object {name="banana", sex="21", color="red"}
console.log(str1)
// 删除属性 sex
createJson("sex")
// 输出 Object {name="banana", color="red"}
console.log(str1)
函数应该有三个参数的,第一个为 json 对象,但应你要求,只写了两个,所以函数只能用于修改 str1。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)