//定义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对象 添加属性 思路一样。
json 是个字符串 要添加属性 必须先转换为 对象 或者数组
// 题主说 添加属性 那这个json 应该是一个 对象jsonvar JsonString = '{"age":1,"name":"tom"}'
// 先要把json 转化为对象
var jsonObj = JSON.parse(JsonString)
// 然后在该对象中添加一个 sex 字段
jsonObj["sex"] = "男" // 或者 jsonObj.sex = "男" (如果你添加的字段中有 . - 等特殊字符),就只能使用第一种
// 如果你要使用 直接使用jsonObj 就可以 如果还要转化回去 使用 JSON.prase()方法
JsonString = JSON.prase(jsonObj)
1、读取JSON文件,进行反序列化
// source 对象即为JSON对象var source = require('./source.json')
// 假定数据如下
var _source = {
list: ['a', 'b', 'c'],
length: 3
}
2、修改或者添加数据
// 添加一个属性source.key = 'key'
3、序列化并写入文件
// 序列化var destString = JSON.stringify(source)
// 写入文件
fs.writeFile('./source.json', destString)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)