gpt4 book ai didi

jquery - 如何访问此 JSON 对象 - 未定义错误

转载 作者:行者123 更新时间:2023-12-01 07:44:24 24 4
gpt4 key购买 nike

$(document).ready(function() {
var output = "<div>";
$.getJSON('https://search-a.akamaihd.net/typeahead/suggest/?solrformat=true&rows=20&callback=noCB&q=*%3A*+AND+schoolid_s%3A1255&defType=edismax&qf=teacherfirstname_t%5E2000+teacherlastname_t%5E2000+teacherfullname_t%5E2000+autosuggest&bf=pow(total_number_of_ratings_i%2C2.1)&sort=total_number_of_ratings_i+desc&siteName=rmp&rows=20&start=0&fl=pk_id+teacherfirstname_t+teacherlastname_t+total_number_of_ratings_i+averageratingscore_rf+schoolid_s&fq=&prefix=schoolname_t%3A%22University+of+Texas+at+Austin%22&callback=?' , function(data) {

for (var professor in data.noCB.response.docs) { //where the error might be
output += "a"
}
output += "</div>"
});
document.getElementById("listt").innerHTML = output;
});

这是我调用以获取 JSON 数据的 url:

这是带有数据的网址:

JSON Data

我收到错误 - noCB 未定义。

我想我正在尝试以错误的方式访问 JSON 对象 - 但我不确定正确的方式。请让我知道 - 我是初学者。

最佳答案

您收到的响应使用的是 JSONP(而不是 JSON)。您只需使用 data.response.docs,而不是 data.noCB.response.docsnoCB 不是对象的一部分,它是一个函数调用(这就是 JSONP 的工作原理)。

您还需要从 URL 中删除 callback=noCB,以便 jQuery 为您处理 JSONP 管道。

您还有其他一些问题:

  1. 您在填写之前尝试使用输出。请参阅 How do I return the response from an asynchronous call?了解详情。

  2. 不要使用 for-in 循环数组,除非您经过考虑并采取了保护措施;请参阅For-each over an array in JavaScript?了解详情。

最后,这本身并不是一个问题,但只要您使用 jQuery,您也可以将它用于诸如 document.getElementById("listt").innerHTML 之类的事情= 输出;(例如:$("#listt").html(output);)。

示例:

$(document).ready(function() {
var output = "<div>";
$.getJSON('https://search-a.akamaihd.net/typeahead/suggest/?solrformat=true&rows=20&q=*%3A*+AND+schoolid_s%3A1255&defType=edismax&qf=teacherfirstname_t%5E2000+teacherlastname_t%5E2000+teacherfullname_t%5E2000+autosuggest&bf=pow(total_number_of_ratings_i%2C2.1)&sort=total_number_of_ratings_i+desc&siteName=rmp&rows=20&start=0&fl=pk_id+teacherfirstname_t+teacherlastname_t+total_number_of_ratings_i+averageratingscore_rf+schoolid_s&fq=&prefix=schoolname_t%3A%22University+of+Texas+at+Austin%22&callback=?', function(data) {
data.response.docs.forEach(function(doc) {
output += "a";
});
output += "</div>";
document.getElementById("listt").innerHTML = output;
});
});
<div id="listt"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于jquery - 如何访问此 JSON 对象 - 未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41416365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com