json对象如何动态添加属性

json对象如何动态添加属性,第1张

1、遍历 json 对象属性

//定义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对象 添加属性 思路一样。

var

jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"

var

jsonarray

=

eval('('+jsonstr+')')

var

arr

=

{

"name"

:

$('#names').val(),

"value"

:

$('#values').val()

}

jsonarray.push(arr)

//2、

var

json={}//

定义一个json对象

json.array1=["2","4"]//

增加一个新属性,此属性是数组

json.array1[json.array1.length]='6'//

数组追加一个元素

alert(json.array1)

函数不需要 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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11232381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存