簡體   English   中英

如何通過迭代獲取值來在jquery中創建JSON對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM