如何将Json数据加载到下拉列表中

4

在这段代码中,我正在尝试获取JSON值。我能够获取键值,但无法获取val的值。

我该如何做呢?

Jquery代码:

$.getJSON('data.json', function(data) {
    var items = [];
    $.each(data, function(key, val) {
        alert(key);
        alert(val);
        items.push('<option value="' + key + '">'+key+'</option>');
        //items.push('<li id="' + key + '">' +key + '</li>');
    });
    $('#project-list').html(items.join(''));
});  

这里是 JSON 数据

{ 
    "trng-java": {"1":"5"}, 
    "trng-jast": {"2":"5"},
    "trng-caml": {"3":"4"},
    "trng-linx": {"1":"5"}
}

当我运行这个程序时,我能够获取键值,但val的值是Object object。

1
因为它是一个对象 {} - 对象 [] 数组。 - Cԃաԃ
在循环的第一次迭代中,key将是"trng-java",但val将是"{"1":"5"}",因此是Object对象。正如@Cԃաԃ指出的那样,您需要使用val[0]或val[1],无论您想要"1"还是"5"。 - Josh Meiburg
2个回答

2

看起来这个值是一个数组,像其他人建议的那样使用val[index]获取值,但如果你想要它成为一个字符串,请使用

 var valString = val.toString();

这将返回 1.52.5 ...


0

尝试访问:val[0]

  $.getJSON('data.json', function(data) {
var items = [];
$.each(data, function(key, val) {
alert(key);
alert(val[0]);
items.push('<option value="' + key + '">'+key+'</option>');
//items.push('<li id="' + key + '">' +key + '</li>');
});
  $('#project-list').html(items.join(''));
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接