Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 如何通过迭代获取值在jquery中创建JSON对象_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何通过迭代获取值在jquery中创建JSON对象

Javascript 如何通过迭代获取值在jquery中创建JSON对象,javascript,jquery,json,Javascript,Jquery,Json,我不熟悉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

我不熟悉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的字符串,该字符串将以上述格式生成


非常感谢您的帮助。

JSON只是javascript对象的序列化表示,因此只需在javascript中创建对象,然后使用JSON.stringify方法进行序列化。如果您不确定如何创建javascript对象并向数组中添加值,那么您应该进行一些谷歌搜索,因为这是非常基本的内容。

如果这是您的表(第一个单元格是ip,第二个单元格是mac)


第一个答案很好。但由于这个问题与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>

16.140.23.90a2:35:67:e7
16.140.23.9136:b1:79:ab
创建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()
    });
}
var-ips={“端点”:[];
变量行=$('tbl tr');
对于(变量i=0;i

这正是我想要的。谢谢你的及时帮助!我还在学习过程中:)不客气!如果你能接受这个答案,那就太好了:)
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;
});
<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>
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()
    });
}