0

我在 Slackware 上运行 nagios,我正在使用mklivestatus它来获取主机的 json 输出。文件格式如下

   [["localhost","127.0.0.1",0]]

我如何使用$.getJSON()来获取值并将它们附加到 html 页面中?或者有没有办法将 json 文件更改为这种格式:

{["host_name":localhost","host_ip":"127.0.0.1","status":0]}

使用上述格式,我正在使用此代码并且工作正常

<script>
    $.getJSON('status.json', function(data) {
        var output = '';

        $.each(data, function(index, value){

            output += '<option value="'+value.host_name+'">'+value.host_name+' ('+value.status+')</option>';

        });

        $('#page').html(output);

    });
</script>
4

1 回答 1

1

有几个问题:

  1. 最重要[["localhost","127.0.0.1",0]]的是一个数组数组,所以把它当作一个数组来对待。而不是value.host_name使用 index 来访问它的 members value[0]
  2. 使用适当的事件 jQM 处理程序(例如pageinit
  3. 而且我猜您想将<option>s插入select元素,而不是页面。

现在,鉴于您有以下标记

<div data-role="page" id="page">
    <div data-role="content">    
        <select id="select1">
        </select>
    </div>
</div>

你像这样填充你的选择菜单

$(document).on("pageinit", "#page", function(){
    $.getJSON("status.json", function(data){
        var output = '';
        $.each(data, function(index, value){
            output += '<option value="'+value[0]+'">'+value[1]+' ('+value[2]+')</option>';
        });
        $('#select1').html(output);
    });
});

PS BTW 这是无效的 JSON

{["host_name":localhost","host_ip":"127.0.0.1","status":0]}

它应该是

[{"host_name":localhost","host_ip":"127.0.0.1","status":0}]
于 2013-02-25T22:48:37.137 回答