Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中更改JSON格式_Javascript_Jquery_Json - Fatal编程技术网

在javascript中更改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"] 我

我最近开发了一个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"]
我用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"
}]

您能举一个您正在使用的代码示例吗。正如你从我的小提琴上看到的,它应该很好用。谢谢,它很有魅力。现在我把这个应用到我所有的表中。你能举一个你正在使用的代码的例子吗。正如你从我的小提琴上看到的,它应该很好用。谢谢,它很有魅力。现在我把它用在我所有的桌子上。