首页 新闻 会员 周边

json数据与html table表格之间的转换

0
悬赏园豆:20 [已解决问题] 解决于 2014-07-25 18:37

<table id="table" style="width: 100%;" cellpadding="0" cellspacing="0">
        <thead>
            <tr>
                <td>颜色</td>
                <td>套餐</td>
                <td>版本</td>
                <td>价格</td>
                <td>数量</td>
                <td>编号</td>
                <td>条形码</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td rowspan="4">红色</td>
                <td rowspan="2">套餐四</td>
                <td>港货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td>日货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td rowspan="2">套餐八</td>
                <td>港货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td>日货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td rowspan="4">蓝色</td>
                <td rowspan="2">套餐四</td>
                <td>港货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td>日货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td rowspan="2">套餐八</td>
                <td>港货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
            <tr>
                <td>日货</td>
                <td>99.9</td>
                <td>100</td>
                <td>123456789</td>
                <td>987654321</td>
            </tr>
        </tbody>
    </table>

 

我这是一个html的表格,行列都是不确定的,上面数据只是一种例子。

用js怎么把此数据表格转化成一个json数据,并且也可以把json数据转化成这中表格,是双向的。应该如何实现呢。

json的格式我已经定义好了,不过中间的过程转化确实感觉不好实现,有哪位大神能帮忙解决一下啊。求一个读写转化的方法。给点思路也行啊 ~~~大神

下面是json格式:

var _77 = {
    "Category": [
        "机身颜色",
        "套餐类型",
        "机身内存",
        "版本型号"
    ],
    "Series": [
        {
            "红": [
                {
                    "套餐四": [
                        {
                            "1.5GB": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ],
                            "64GB以上": [
                                 {
                                     "港澳台": [
                                         99.9,
                                         100,
                                         "4561545613",
                                         "123456789"
                                     ],
                                     "日本": [
                                         88.8,
                                         222,
                                         "9876453142",
                                         "654789313"
                                     ]
                                 }
                            ]
                        }
                    ]
                },
                {
                    "套餐八": [
                        {
                            "1.5GB": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ],
                            "64GB以上": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "蓝": [
                {
                    "套餐四": [
                        {
                            "1.5GB": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ],
                            "64GB以上": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ]
                        }
                    ]
                },
                {
                    "套餐八": [
                        {
                            "1.5GB": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ],
                            "64GB以上": [
                                {
                                    "港澳台": [
                                        99.9,
                                        100,
                                        "4561545613",
                                        "123456789"
                                    ],
                                    "日本": [
                                        88.8,
                                        222,
                                        "9876453142",
                                        "654789313"
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}
老江湖的主页 老江湖 | 初学一级 | 园豆:104
提问于:2014-07-21 00:44
< >
分享
最佳答案
1

遍历JSON对象,构造HTML代码,有个地方要处理好,就是跨行!

收获园豆:20
Alex_QY1987 | 小虾三级 |园豆:1888 | 2014-07-21 10:16

方法我知道怎么实现,就是现在方法体内的逻辑不好写,而且还得要做逆向的解析,不只是单向的。

老江湖 | 园豆:104 (初学一级) | 2014-07-22 10:13

@老江湖: 这样呢,你先不要处理合并行的问题,先直接输出一个无合并行的table,然后再调用一个合并行的JS插件来实现合并,展示出来。

http://www.jb51.net/article/27428.htm   插件参考。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-22 10:41

@Alex_QY1987: 谢谢了,就是按照你的这种思路来实现的,膜拜膜拜。

老江湖 | 园豆:104 (初学一级) | 2014-07-25 18:36

@Alex_QY1987: 我也想知道这个问题,初学者看不懂,能不能直接上代码

太白水桶 | 园豆:195 (初学一级) | 2016-03-30 10:56
其他回答(1)
0

循环生成html就行了啊~

幻天芒 | 园豆:37175 (高人七级) | 2014-07-21 09:49

我知道是循环生成html,但是现在是不知道该如何循环,才能生成html.然后又不知道该如何从html逆向生成json. 方法具体怎么实现你知道吗?

支持(0) 反对(0) 老江湖 | 园豆:104 (初学一级) | 2014-07-22 10:12

@老江湖: 转换为json对象后,可以当成List<T>这样的数据类型去处理。for(var i=0,len=arr.length;i<len;i++){}

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-07-22 13:32

@幻天芒: 虽然没明白你得思路但是也非常感谢。

支持(0) 反对(0) 老江湖 | 园豆:104 (初学一级) | 2014-07-25 18:37

@老江湖: :)

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-07-25 19:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册