Javascript 从表到json的数据
你好 我有一个表,其中包含我试图转换为json格式的数据,因此我可以使用我的JSPDF插件打印它,但问题是我似乎无法将正确的json格式插入到我现有的json数据中 下面是我将表数据转换为json的脚本Javascript 从表到json的数据,javascript,jquery,json,Javascript,Jquery,Json,你好 我有一个表,其中包含我试图转换为json格式的数据,因此我可以使用我的JSPDF插件打印它,但问题是我似乎无法将正确的json格式插入到我现有的json数据中 下面是我将表数据转换为json的脚本 $('.report-table tr').each(function(){ var obj = {}; obj['column'] = [{}]; obj['column']['value']=[]; $('th', this)
$('.report-table tr').each(function(){
var obj = {};
obj['column'] = [{}];
obj['column']['value']=[];
$('th', this).each(function(){
//obj.column.value.push($(this).text());
obj['column']['value'] = $(this).text();
// obj.column.value.push($(this).text());
// obj['column'] = $(this).text();
});
$('td', this).each(function(){
// obj.column.value.push($(this).text());
obj['column']['value'] = $(this).text();
});
dynamic.contents.data.push(obj);
});
这是我要附加的现有json数据
var dynamic = {
"documentTitle": "Dynamic Print",
"pageTitle": "Dynamic Print",
"image": '',
"pageType": "d",
"columns": 5,
"contents": {
"data": [
{
"column": [
{
"value": "Jan.2007"
},
{
"value": "Jan.2008"
},
{
"value": "Jan.2009"
},
{
"value": "Jan.2010"
},
{
"value": "Period End"
}
],
"header": true,
"fontType": "b",
"highLight": 1,
"newLine": 1
},
{
"column": [
{
"value": "-95000100"
},
{
"value": "85411250"
},
{
"value": "0"
},
{
"value": "55000250"
},
{
"value": "Dynamic print 1 Dynamic print 1 Dynamic Dynamic print 1Dynamic print 1print 1"
}
],
"indent": 1
},
{
"column": [
{
"value": "95000100"
},
{
"value": " "
},
{
"value": "55000250"
},
{
"value": "55000250"
},
{
"value": "Dynamic print 1 Dynamic print 1 Dynamic Dynamic print 1Dynamic print 1print 1"
}
]
},
{
"column": [
{
"value": "95000100"
},
{
"value": "85411250"
},
{
"value": "55000250"
},
{
"value": "55000250"
},
{
"value": "Dynamic print 1 "
}
]
},
{
"column": [
{
"value": "95000100"
},
{
"value": "85411250"
},
{
"value": "55000250"
},
{
"value": "55000250"
},
{
"value": "Dynamic print 1 "
}
]
},
{
"hr": 1,
"highLight": 1,
"column": [
{
"value": "95000100"
},
{
"value": "85411250"
},
{
"value": "55000250"
},
{
"value": "55000250"
},
{
"value": "Dynamic print 1 "
}
]
},
{
"column": [
{
"value": "95000100"
},
{
"value": "85411250"
},
{
"value": "55000250"
},
{
"value": "55000250"
},
{
"value": "Dynamic print 1 "
}
]
}
]
}
};
所以问题是我想得到这种数据格式
但是我从我的js中得到了这种格式
有人能帮我做正确的格式吗。非常感谢你!请让我知道我是否可以做些什么来让它更容易理解。问题从一开始就显而易见。这里有两行:
obj['column'] = [{}];
obj['column']['value']=[];
第一个使obj['column']成为一个数组,在第0位有一个空对象。在第二行,您访问obj['column']的value属性,使其成为对象而不是数组,我猜这是不希望的结果。我认为您希望将obj['column']作为一个简单数组,并在该数组中推送一个具有属性值的对象,如下所示:
obj['column'] = [];
obj['column'].push({value: []});
或者更好的是,此时您不想在obj['column']上推送任何内容,而是在.each方法中:
希望它能有所帮助试试以下方法:
obj['column'].push{'value':$this.text} 非常感谢您的回答@Drecker!!它起作用了!我不敢相信这会那么容易,我确实花了几个小时在这上面,直到我决定把它贴在这里!再次感谢您的帮助!真的救了我。现在我可以开始下一件事了!::D非常感谢您的回答,先生@Marty McKeever!是的,这是正确的做法!
obj['column'] = [];
$('th', this).each(function(){
obj['column'].push({value: $(this).text()});
});