[英]How to create JSON object in jquery by getting values through iteration
我是JSON和jquery的新手。 我有以下用例,我需要一些幫助。
我需要以下列格式創建一個對象數組:
{ "endpoint" : [
{ "ip": "16.140.23.90", "mac": "a2:35:67:e7" },
{ "ip": "16.140.23.91", "mac": "36:b1:79:ab" }
]
}
這是我需要的樣本(僅代表兩行,可以有更多行)。 現在我需要通過迭代表的選定行來添加ip和mac的值。 例如,GUI上有一個表,其中每行有兩列“IP”和“MAC”。 我需要以上述格式獲取所選行的數據。
當我需要在迭代時添加屬性的值時,如何以上述格式形成JSON數組? 我可以用JSON.stringify API做什么嗎? 如果是,那么如何形成我可以傳遞給JSON.stringify的字符串,從而產生上述格式?
任何幫助將受到高度贊賞。
如果這是你的表(第一個單元格是ip,第二個單元格是mac)
<table id='tbl'>
<tr><td>16.140.23.90</td><td>a2:35:67:e7</td></tr>
<tr><td>16.140.23.91</td><td>36:b1:79:ab</td></tr>
</table>
純JS
var ips = { "endpoint" : [] };
var tbl = document.getElementById('tbl');
for (var i=0; i<tbl.rows.length; i++) {
ips["endpoint"].push({
"ip" : tbl.rows[i].cells[0].innerHTML,
"mac" : tbl.rows[i].cells[1].innerHTML
});
}
jQuery的
var ips = { "endpoint" : [] };
$(document).ready(function() {
$('#tbl tr').each(function(i) {
ips["endpoint"].push({
"ip" : $(this).find('td:eq(0)').text(),
"mac" : $(this).find('td:eq(1)').text()
});
});
var json = (JSON.stringify(ips));
document.getElementById('json').innerHTML = json;
});
第一個答案是好的。 但由於這個問題與jquery有關,我提供了一個類似的解決方案,使用jquery來操作DOM。 表格仍然相同:
<table id='tbl'>
<tr><td>16.140.23.90</td><td>a2:35:67:e7</td></tr>
<tr><td>16.140.23.91</td><td>36:b1:79:ab</td></tr>
</table>
用於創建json對象的javascript代碼:
var ips = { "endpoint": [] };
var rows = $('#tbl tr');
for (var i = 0; i < rows.length; i++) {
ips["endpoint"].push({
"ip": rows.eq(i).find("td").eq(0).text(),
"mac": rows.eq(i).find("td").eq(1).text()
});
}
JSON只是javascript對象的序列化表示,因此只需在javascript中創建對象,然后使用JSON.stringify方法進行序列化。 如果你不確定如何制作一個javascript對象並為數組添加值,那么你應該做一些谷歌搜索,因為這是非常基本的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.