Javascript 如何创建JSON列表?
我必须形成一个JSON对象,比如Javascript 如何创建JSON列表?,javascript,jquery,json,asp.net-mvc-3,Javascript,Jquery,Json,Asp.net Mvc 3,我必须形成一个JSON对象,比如 var SelectedRows= { "item1":{"id":"1","name":"jhon","phone":"6699"}, "item2":{"id":"2","name":"Aron","phone":"7799"}, "item2":{"id":"3","name":"Iyan","phone":"8899"}, } 在复选框单击事件中,我需要将网格行值添加到JSON列表中。
var SelectedRows= {
"item1":{"id":"1","name":"jhon","phone":"6699"},
"item2":{"id":"2","name":"Aron","phone":"7799"},
"item2":{"id":"3","name":"Iyan","phone":"8899"},
}
在复选框单击事件中,我需要将网格行值添加到JSON列表中。我正在尝试使用以下代码:
var SelectedRows={};
$(this).delegate(":checkbox", "click", function() {
var j=0;
var item=[];
SelectedRows[item]={}; *//I guess this line creating problem*
$(this).closest("tr").find("td:visible").each(function(){
var key=headerRow[j]["i"];
if(j == 0)
{
}
else
{
SelectedRows[item][key]=$(this).text();
}
j=++j;
});
多个复选框单击事件发生后,SelectedRows
仅包含上次单击事件数据
如何获取所有复选框单击事件数据?替换
var项[]代码>通过var项='item'+(j+1)代码>和结果应为
var SelectedRows= {
"item1":{"id":"1","name":"jhon","phone":"6699"},
"item2":{"id":"2","name":"Aron","phone":"7799"},
"item2":{"id":"3","name":"Iyan","phone":"8899"},
}
我是这样做的。它正以上述格式显示
var SelectedRows=[];
var rowCount=1;
使用额外的计数变量从item1、item2、item3等中删除
$(this).delegate(":checkbox", "click", function() {
var j=0;
var item={};
$(this).closest("tr").find("td:visible").each(function(){
var key=headerRow[j]["i"];
if(j == 0){ }
else {
item[key]=$(this).text();
}
j=++j;
});
SelectedRows["item"+rowCount]=item;
rowCount=++rowCount;
});
您可以像这样创建一个json数组
var SelectedRows= [
item1:{id:"1",name:"jhon",phone:"6699"},
item2:{id:"2",name:"Aron",phone:"7799"},
item2:{id:"3",name:"Iyan",phone:"8899"}
]
这是您试图创建的一个有趣的JSON对象。为什么不使用数组而不是添加具有伪键item1、item2、item3等的元素。?为什么每个项目都由一个只有一个元素的数组组成
不是有效的Javascript,你想用它做什么?@Barmar,这是打字错误,我编辑了它。现在你正在使用一个未定义的变量item
@Codo,我在服务器端使用这些键(id、名称、电话),所以我决定创建json对象。上面的json对象格式可能错误(伪键item1、item2、item3等)。