如何遍历json数组

斯图尔塔布兰特

我被困在脚本中,不确定如何在我设置的div中打印它。我想这与我处理响应的方式有关。chrome devtools中的响应如下所示:

{
    "[\"record one\", \"/description\"]": 0
}

我尝试使用两者和map来迭代数据,但到目前为止没有任何进展。我是js和jquery的新手,因此该脚本主要来自阅读和示例。

也许某种嵌套循环?这是我的代码-

 $(function() {
  return $('#myslider').slider({
    range: true,
    min: 0,
    max: 20,
    values: [1, 20],
    stop: function(event, ui) {
      var max, min;
      min = ui.values[0];
      max = ui.values[1];
      $('#range').text(min + ' - ' + max);
      $.ajax({
        url: '/dir_scan',
        type: 'get',
        data: {
          min: min,
          max: max
        },
        dataType: 'json',
        success: function(response) {
          var albums;
          albums = response;
          $.each(albums, function(index, obj) {
            var albumname, artist, li_tag;
            li_tag = '';
            albumname = obj.AlbumName;
            artist = obj.Artist;
            li_tag += '<li>Artist: ' + artist + ', Album: ' + albumname + '</li>';
            $('#result').append($(li_tag));
            return console.log;
          });
        }
      });
    }
  });
});
斯图尔塔布兰特

这是这种情况下迭代的工作方式。代码注释-

success: function(response) {
  var albums;
   // side issue - but I had to clear the div to get a complete refresh
    $('#result').empty();
      albums = response;
        $.each(albums, function(key, value) {
          var albumname, li_tag, path;
          li_tag = '';
        // I found I had to do this parseJSON call otherwise 
        // I had no correct key/value pair, even though I had set dataType 
        // to JSON
        albumname = jQuery.parseJSON(key);
      path = albumname[1];
    li_tag += '<li ><a href=/album' + encodeURI(albumname[1]) + '>' + albumname[0] + '</a href></li>';
  $('#result').append($(li_tag));
 return console.log;
 });

实际上,value在代码中只是索引号,但是我将实际的键/值对用逗号分隔,因此parseJSON似乎是唯一的工作方式。尽管尝试了split和substr之类的方法,但这仍然可行。希望我的答案是明确的,如果我不能编辑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章