在javascript中更改JSON格式
我最近开发了一个rest服务,它接受这种格式的json数据在javascript中更改JSON格式,javascript,jquery,json,Javascript,Jquery,Json,我最近开发了一个rest服务,它接受这种格式的json数据 { "foods": "food1, food2, food3", "qty": "1,2,3" } ["food1","1","food2","2","food3","3"] 但是我的javascript生成这种格式 { "foods": "food1, food2, food3", "qty": "1,2,3" } ["food1","1","food2","2","food3","3"] 我
{
"foods": "food1, food2, food3",
"qty": "1,2,3"
}
["food1","1","food2","2","food3","3"]
但是我的javascript生成这种格式
{
"foods": "food1, food2, food3",
"qty": "1,2,3"
}
["food1","1","food2","2","food3","3"]
我用php写了我的其余部分
数据来自此表体
<tbody id="tr">
<tr>
<td class="data">food1</td>
<td class="data">1</td>
<td>
<div class="col-sm-1">
<button type="button" class="btn btn-danger removethisfood">-</button>
</div>
</td>
</tr>
<tr>
<td class="data">food1</td>
<td class="data">1</td>
<td>
<div class="col-sm-1">
<button type="button" class="btn btn-danger removethisfood">-</button>
</div>
</td>
</tr>
<tr>
<td class="data">food1</td>
<td class="data">1</td>
<td>
<div class="col-sm-1">
<button type="button" class="btn btn-danger removethisfood">-</button>
</div>
</td>
</tr>
</tbody>
您可以通过在每个
tr
上循环并将相关td
的文本添加到数组中来实现所需的格式,然后通过将数组的文本连接在一起来构建最终对象,如下所示:
var foods = [], qty = [];
$('tr').each(function() {
var $row = $(this);
foods.push($row.find('td:eq(0)').text());
qty.push($row.find('td:eq(1)').text());
})
var obj = {
foods: foods.join(','),
qty: qty.join(',')
};
var obj = $('tr').map(function() {
var $row = $(this);
return {
food: $row.find('td:eq(0)').text(),
qty: $row.find('td:eq(1)').text()
}
}).get()
[{
"food": "food1",
"qty": "1"
},{
"food": "food2",
"qty": "1"
},{
"food": "food3",
"qty": "1"
}]
也就是说,您的JSON格式可以得到改进,以实现序列化/反序列化的清晰性和简单性。更合理的做法是发送一个数组,其中每个项目包含在一个对象中,参数为其名称和数量,如下所示:
var foods = [], qty = [];
$('tr').each(function() {
var $row = $(this);
foods.push($row.find('td:eq(0)').text());
qty.push($row.find('td:eq(1)').text());
})
var obj = {
foods: foods.join(','),
qty: qty.join(',')
};
var obj = $('tr').map(function() {
var $row = $(this);
return {
food: $row.find('td:eq(0)').text(),
qty: $row.find('td:eq(1)').text()
}
}).get()
[{
"food": "food1",
"qty": "1"
},{
"food": "food2",
"qty": "1"
},{
"food": "food3",
"qty": "1"
}]
该输出如下所示:
var foods = [], qty = [];
$('tr').each(function() {
var $row = $(this);
foods.push($row.find('td:eq(0)').text());
qty.push($row.find('td:eq(1)').text());
})
var obj = {
foods: foods.join(','),
qty: qty.join(',')
};
var obj = $('tr').map(function() {
var $row = $(this);
return {
food: $row.find('td:eq(0)').text(),
qty: $row.find('td:eq(1)').text()
}
}).get()
[{
"food": "food1",
"qty": "1"
},{
"food": "food2",
"qty": "1"
},{
"food": "food3",
"qty": "1"
}]
您可以通过在每个
tr
上循环并将相关td
的文本添加到数组中来实现所需的格式,然后通过将数组的文本连接在一起来构建最终对象,如下所示:
var foods = [], qty = [];
$('tr').each(function() {
var $row = $(this);
foods.push($row.find('td:eq(0)').text());
qty.push($row.find('td:eq(1)').text());
})
var obj = {
foods: foods.join(','),
qty: qty.join(',')
};
var obj = $('tr').map(function() {
var $row = $(this);
return {
food: $row.find('td:eq(0)').text(),
qty: $row.find('td:eq(1)').text()
}
}).get()
[{
"food": "food1",
"qty": "1"
},{
"food": "food2",
"qty": "1"
},{
"food": "food3",
"qty": "1"
}]
也就是说,您的JSON格式可以得到改进,以实现序列化/反序列化的清晰性和简单性。更合理的做法是发送一个数组,其中每个项目包含在一个对象中,参数为其名称和数量,如下所示:
var foods = [], qty = [];
$('tr').each(function() {
var $row = $(this);
foods.push($row.find('td:eq(0)').text());
qty.push($row.find('td:eq(1)').text());
})
var obj = {
foods: foods.join(','),
qty: qty.join(',')
};
var obj = $('tr').map(function() {
var $row = $(this);
return {
food: $row.find('td:eq(0)').text(),
qty: $row.find('td:eq(1)').text()
}
}).get()
[{
"food": "food1",
"qty": "1"
},{
"food": "food2",
"qty": "1"
},{
"food": "food3",
"qty": "1"
}]
该输出如下所示:
var foods = [], qty = [];
$('tr').each(function() {
var $row = $(this);
foods.push($row.find('td:eq(0)').text());
qty.push($row.find('td:eq(1)').text());
})
var obj = {
foods: foods.join(','),
qty: qty.join(',')
};
var obj = $('tr').map(function() {
var $row = $(this);
return {
food: $row.find('td:eq(0)').text(),
qty: $row.find('td:eq(1)').text()
}
}).get()
[{
"food": "food1",
"qty": "1"
},{
"food": "food2",
"qty": "1"
},{
"food": "food3",
"qty": "1"
}]
您能举一个您正在使用的代码示例吗。正如你从我的小提琴上看到的,它应该很好用。谢谢,它很有魅力。现在我把这个应用到我所有的表中。你能举一个你正在使用的代码的例子吗。正如你从我的小提琴上看到的,它应该很好用。谢谢,它很有魅力。现在我把它用在我所有的桌子上。