0

我从服务器返回 JSON,它是来自 java 的 JSON 化 Map 对象。Map 有一个列表和一个整数。如何在 jquery 中获取列表?

int found = hits.length;

List<Object> results = new ArrayList<Object>();

for (ScoreDoc scoreDoc : hits) {
     ....
     // create an object and add to results list
     results.add(Object)
}

Map map = new HashMap();
map.put("results", results);
map.put("hits", found);
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(map);

我通过ajax从搜索中提取结果:

function  search(query){
    $.ajax({
        type: 'POST',
        url: 'search',
        data: query,
        success: function(data){
            showResults(data);
        },
        dataType: 'json'
    });
}

现在在显示结果中我不知道如何从地图中获取我的列表。任何帮助将不胜感激

function showResults(data){
    if(!$('#liveSearchContainer').is(':visible')){
        $(this).show(2000);
    }
}
4

1 回答 1

0

关于 javascript 和 JQuery 的一些事实

  • jQuery 应该为您将数据从 JSON 字符串解析为 javascript 对象。
  • 所有 javascript 对象都是有效的哈希映射
  • object.someProperty您可以通过执行或访问 javascript 对象属性object["someProperty"]
  • 如果您不确定传递给函数的内容,请执行console.log(arguments)

回答:

在功能showResults

var results = data.results
// Hash lookups are so quick that the only reason
// we cache the result is so we have less to type!

然后像

$('#liveSearchContainer').html('<p>'+data.hits+' hits</p><ol></ol>');

results.forEach(function(result) {
  $('#liveSearchContainer ol').append(buildResultHTML(result));
})

// Where you might write buildResultHTML to build HTML for a search result
于 2013-07-06T23:48:01.517 回答