我这里有一个文件,内容如下:
{Item:[{month:'03',items:[{name:'买插座',money:'50',date:'2015-3-1'},{name:'买**',money:'200.5',date:'2015-3-2'}]},{month:'04',items:[{name:'买插座1',money:'50',date:'2015-4-1'},{name:'买**1',money:'200.5',date:'2015-4-2'}]}]}
我想在items后面添加数据,数据格式和上面一样,请问怎么弄,谢谢啦!
这是json格式,一层层剥离出来就行了
var a={Item:[{month:'03',items:[{name:'买插座',money:'50',date:'2015-3-1'},{name:'买**',money:'200.5',date:'2015-3-2'}]},{month:'04',items:[{name:'买插座1',money:'50',date:'2015-4-1'},{name:'买**1',money:'200.5',date:'2015-4-2'}]}]};
var item = a['Item'];
for(var i=0;i<item.length;i++){
item[i].items.push({
name:'新插座'+i,
money:'1000',
date:'2015-5-1'
})
}
好像不行哎,这是我的代码,你帮我看看
aso=new ActiveXObject("Scripting.FileSystemObject");
reader=aso.OpenTextFile(path,ForReading);
content=reader.ReadLine();
var json=eval('(' + content + ')');
var obj=json.Item;
var flag=true;
for(var i=0;i<obj.length;i++){
if(obj[i].month==month){
//月份已存在,直接追加在末尾
var data="{name:'"+Mincontent+"',money:'"+money+"',date:'"+date+"'}";
obj[i].items.push(data);
flag=false;
break;
}
}
亲测可用, 给分结贴吧。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>test</title>
<script type="text/javascript">
//json格式化参见: http://www.bejson.com/
var d =
{
Item: [
{
month: '03',
items: [
{
name: '买插座',
money: '50',
date: '2015-3-1'
},
{
name: '买**',
money: '200.5',
date: '2015-3-2'
}
]
},
{
month: '04',
items: [
{
name: '买插座1',
money: '50',
date: '2015-4-1'
},
{
name: '买**1',
money: '200.5',
date: '2015-4-2'
}
]
}
]
};
var newItem = {
month: '05',
items: [
{
name: '买插座5月',
money: '50',
date: '2015-5-1'
},
{
name: '买**1',
money: '200.5',
date: '2015-5-2'
}
]
};
d.Item.push(newItem);
//注:
//1. JSON.stringify作用为json转字符串; 必须在IE8+,Chrome,Firefox上执行,IE6,7必须引用js;
//2. JSON.parse(jsonstr)作用为字符串转json;
var str= JSON.stringify(d);
var strNewItem = JSON.stringify(d.Item[2]);
var jsonObj = JSON.parse(strNewItem);
alert( "添加后的json:\n"+str +"\n\njson中的新元素:"+strNewItem +"\n\n新元素的对应字符串又转回json后的属性值(month):"+jsonObj.month);
</script>
</head>
<body>
</body>
</html>