Javascript 从表到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)

你好

我有一个表,其中包含我试图转换为json格式的数据,因此我可以使用我的JSPDF插件打印它,但问题是我似乎无法将正确的json格式插入到我现有的json数据中

下面是我将表数据转换为json的脚本

$('.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()});   
    });