将多个table中的数据提取出来组成复杂JSON,只能使用手工拼接的方式吗?

winzond 2018-05-09 08:26:00
我想将多个table中的数据提取出来组成复杂的JSON,一次传递给后台写入数据库处理,手工拼接倒是会的,只是这样太麻烦了,而且一不小心容易出错,试想过将对象作为另一个对象的属性来处理,貌似没有搜索到相关的案例。请教大神,难道只有手工拼接一条路可以走吗?有没有比手工拼接更方便且不容易出错的方法?
比如这样的JSON,甚至更多层的JSON
{
"零售单":[
{"vip":"**","金额":"**","优惠":"**"……}
],
"零售商品":[
{"商品一":"**","折扣":"**","数量":"**",……},
{"商品二":"**","折扣":"**","数量":"**",……},
……
],
"经手人":[
{"经手人一":"**","比例":"**",……},
{"经手人一":"**","比例":"**",……},
……
]
}
...全文
510 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-05-10
  • 打赏
  • 举报
回复
JSON.stringify是可以格式化的 alert(JSON.stringify(obj,null,4));
winzond 2018-05-10
  • 打赏
  • 举报
回复
以下代码:
            var arr1 = new Object();
            arr1.one = 1;
            arr1.two = 2;
            var arr2 = new Object();
            arr2.three = 3;
            arr2.four = 4;
            var arr3 = new Object();
            arr3.five = 5;
            arr3.six = 6;
            var arr4 = new Object();
            arr4.seven = 7;
            arr4.eight = 8;
            var arr5 = new Array();
            arr5.push(arr3);
            arr5.push(arr4);
            var obj = new Object();
            obj.yi = arr1;
            obj.er = arr2;
            obj.san = arr5;
            alert(JSON.stringify(obj));
弹出:
{
	"yi": {
		"one": 1,
		"two": 2
	},
	"er": {
		"three": 3,
		"four": 4
	},
	"san": [{
		"five": 5,
		"six": 6
	}, {
		"seven": 7,
		"eight": 8
	}]
}
正是我需要的效果。当然弹出来不是这样的,为了便于显示,才格式化的
winzond 2018-05-10
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
把对象作为另一个对象的属性,是这个意思吗?
var arr1 = [
  {"vip":"**","金额":"**","优惠":"**"……}
];
var arr2 = [
  {"商品一":"**","折扣":"**","数量":"**",……},
  {"商品二":"**","折扣":"**","数量":"**",……},
  ……
];
var obj = {
  "零售单": arr1,
  "零售商品": arr2
}
对的,就是这个意思,其实我应该自己测试一下的,试一下就知道对与错了,没找到案例,一直不敢试,一试,还就对了
天际的海浪 2018-05-10
  • 打赏
  • 举报
回复
把对象作为另一个对象的属性,是这个意思吗?
var arr1 = [
  {"vip":"**","金额":"**","优惠":"**"……}
];
var arr2 = [
  {"商品一":"**","折扣":"**","数量":"**",……},
  {"商品二":"**","折扣":"**","数量":"**",……},
  ……
];
var obj = {
  "零售单": arr1,
  "零售商品": arr2
}
winzond 2018-05-10
  • 打赏
  • 举报
回复
引用 1 楼 bbboy8205 的回复:
table 中的数据基本应该是循环的, 找到相似的, 用jq 循环获取数据就好了。
问题不出在提取数据,手工拼接数据,我是会的。而在于JSON的生成方式上,是否可以把对象作为另一个对象的属性?像asp.net的类可以包含其它类一个意思。
风中的少年 2018-05-09
  • 打赏
  • 举报
回复
table 中的数据基本应该是循环的, 找到相似的, 用jq 循环获取数据就好了。

87,969

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧