我正在尝试从都市词典API中解析这个JSON数据:
{
"tags":[
"poop",
"shit",
"sex",
"ass",
"anal",
"cob",
"penis",
"indiana",
"dog",
"food"
],
"result_type":"exact",
"list":[
{
"definition":"Something I shitted the other day that I never ate.",
"permalink":"http://corn.urbanup.com/1074446",
"thumbs_up":1065,
"author":"fat bastard",
"word":"corn",
"defid":1074446,
"current_vote":"",
"written_on":"2005-02-20T00:00:00.000Z",
"example":"::Looks in toilet::\r\nWhat!?... I never ate any corn!",
"thumbs_down":570
},
{
"definition":"originated in Jersey.\n\n1. It is equivalent to a sardonic cool.\n\n2. Cool, no one gives a shit.",
"permalink":"http://corn.urbanup.com/5175475",
"thumbs_up":342,
"author":"MikeK3",
"word":"corn",
"defid":5175475,
"current_vote":"",
"written_on":"2010-08-23T00:00:00.000Z",
"example":"Damian: Yo, I just scored forty points in a rec game with the nigs. Then had a volleyball game and had forty kills.\n\nOther: Corn\n\nDamian: ...",
"thumbs_down":251
},
{
"definition":"A ground grown grain, that is full of starch... NOT a VEGETABLE! And, NOT a starch.\n\nIn history corused to be part of a weed called \"Teosinte\". It was very small, and barely eatable. This was usually grown in cetural america.\n\nThis later evolved in the what they called \"Maize\", what we now call early maize. It would be large enough to eat, and was used in replacement of the vegetable.\n\nNow we know corn as the modern maize. The normal crop rage from 6-12 inches long, and 2-5 inches wide. The corn is on waht we call a cob, and the corn grows around it taking the nutrience from the cob. I has become a normal dish in our would today.",
"permalink":"http://corn.urbanup.com/4248083",
"thumbs_up":202,
"author":"Bear///Claw",
"word":"Corn",
"defid":4248083,
"current_vote":"",
"written_on":"2009-09-20T00:00:00.000Z",
"example":"Person 1: What vegetable do you want for dinner?\n\nPerson 2: Let us have a grain instead, we can have corn! I need to have some starch anyways.\n\nPerson 1: Would you like to eat the corn off of the cob, or cut if off first?\n\nPerson 2: All the same to me.",
"thumbs_down":134
},
{
"definition":"1 - Yellow food on cob.\r\n2 - Digestion timing device. Simply see how much time passes from corn digestion to seeing it in the toilet.\r\n3 - Elvis's last word.",
"permalink":"http://corn.urbanup.com/183886",
"thumbs_up":224,
"author":"Kuzin Rob",
"word":"corn",
"defid":183886,
"current_vote":"",
"written_on":"2003-07-16T00:00:00.000Z",
"example":"1 - I will have the 32 oz. Porterhouse, rare, with mashed potatoes and corn.\r\n2 - A healthy person's digestive system will pass corn in 12 to 24 hours.\r\n\"Look daddy! There's a smiley face on that poopie!\"\r\n\"Yes, son. It's made of corn.\"\r\n3 - \"WTF?! CORN?!?\" *GASP* *DEATH*",
"thumbs_down":176
},
{
"definition":"An appropriate replacement for inappropriate swear words.",
"permalink":"http://corn.urbanup.com/5958827",
"thumbs_up":105,
"author":"Exploding Ovens",
"word":"corn",
"defid":5958827,
"current_vote":"",
"written_on":"2011-07-17T00:00:00.000Z",
"example":"What the corn is up with all this corning summer homework...\" \"Corn it, dude.",
"thumbs_down":61
},
{
"definition":"north eastern slang word for good marajuana usualy used in the getto or on the phone for a paraoid dealer of drugs",
"permalink":"http://corn.urbanup.com/2438466",
"thumbs_up":245,
"author":"Zachary Finch",
"word":"corn",
"defid":2438466,
"current_vote":"",
"written_on":"2007-05-27T00:00:00.000Z",
"example":"(phone) yo man i need that hook up on corn this week ",
"thumbs_down":201
},
{
"definition":"Originating from the fine campus of Cornell University comes this unique, rarely used term. Saying that a girl is \"Corn\" means, she is so hot, so beautiful, so utterly drop-dead gorgeous, that you would happily eat the corn out of her shit. Can be used as a great pick-up line or friendly compliment",
"permalink":"http://corn.urbanup.com/793026",
"thumbs_up":408,
"author":"Long Island",
"word":"Corn",
"defid":793026,
"current_vote":"",
"written_on":"2004-08-13T00:00:00.000Z",
"example":"\"Damn bitch, you are Corn!\"\r\nor\r\n\"Baby, you're more Corn than Green Giant\"",
"thumbs_down":378
},
{
"definition":"1. A word used as a synonym or euphamisim for sensual, promiscuous, or sexy.\n\n2. Slang derived from the horror film Troll 2\n\n3. See also: Corn Star, Corn Dog, Corny",
"permalink":"http://corn.urbanup.com/5535118",
"thumbs_up":92,
"author":"cornstar69",
"word":"Corn",
"defid":5535118,
"current_vote":"",
"written_on":"2011-01-22T00:00:00.000Z",
"example":"*hot guy walks in room*\r\nAlex: Dayuuummm\r\nAnnalis: That guy is Corn!\r\nAlex: I wanna Corn him!\r\nAnnalis: What a Corn Star!",
"thumbs_down":66
},
{
"definition":"another word for a butthole",
"permalink":"http://corn.urbanup.com/5321648",
"thumbs_up":61,
"author":"cheeboiiwasabi",
"word":"corn",
"defid":5321648,
"current_vote":"",
"written_on":"2010-10-31T00:00:00.000Z",
"example":"''hey is it true,nunnas licked that girl's corn?",
"thumbs_down":40
},
{
"definition":"The thing that makes up about 99.99% of Iowa's economy. If there's no corn, Iowa will die.",
"permalink":"http://corn.urbanup.com/6693555",
"thumbs_up":32,
"author":"milez97",
"word":"Corn",
"defid":6693555,
"current_vote":"",
"written_on":"2012-07-25T00:00:00.000Z",
"example":"\"This drought is going to kill us all here in Iowa. Even worse, it's killing the corn.\"",
"thumbs_down":22
}
],
"sounds":[
]
}
这是获取它的javascript代码:
function getUrbanWord(urbanWord) {
let url = `http://api.urbandictionary.com/v0/define?term=${urbanWord}`;
var request = new XMLHttpRequest();
request.open('GET', url);
request.responseType = 'json';
request.send();
request.onload = function() {
var list = urbanResponse.list;
for (index in list) {
console.log(`
${list.definition}
${list.permalink}
${list.thumbs_up}
${list.author}
${list.word}
${list.defid}
${list.current_vote}
${list.written_on}
${list.example}
${list.thumbs_down}
`);
}
}
}
当我在console.log中时,我收到了一个" undefined"我只是想知道是否有人知道发生了什么以及我如何处理它。 我是jsut试图打印它所以我可以在以后使用它上下文我正在使用REPL.IT编辑器,如果你认为这与此错误有任何关系请通知我谢谢卡洛斯
答案 0 :(得分:1)
for (index in list)
会循环遍历列表的每个索引。 list
是一个数组,而不是一个对象,因此您无法通过list.definition
访问它。
使用[index]
表示法来表示您要访问index
数组的list
元素:
for (index in list) {
console.log(`
${list[index].definition}
// ...
或更好的是,直接使用forEach
循环遍历数组:
list.forEach((item) => {
console.log(`
${item.definition}
${item.permalink}
// ...
您还需要能够首先访问响应;您的代码中未定义urbanResponse
。
request.onload = function(responseText) {
const urbanResponse = JSON.parse(responseText);
答案 1 :(得分:1)
你有几个错误。
修复代码如下:
function getUrbanWord(urbanWord) {
let url = `//api.urbandictionary.com/v0/define?term=${urbanWord}`;
let request = new XMLHttpRequest();
request.open('GET', url);
request.responseType = 'json';
request.addEventListener( "load", function() {
for (let list of request.response.list) {
console.log(`
${list.definition}
${list.permalink}
${list.thumbs_up}
${list.author}
${list.word}
${list.defid}
${list.current_vote}
${list.written_on}
${list.example}
${list.thumbs_down}
`);
}
} );
request.send();
}
getUrbanWord( "apple" );
首先,onload侦听器中没有urbanResponse
。
其次,list
是一个数组,而不是for循环块中的单个项目。
答案 2 :(得分:1)
请求的结果pof在urbanResponse.target.response.list
而不是urbanResponse.list
下,您可以使用常规for
循环来遍历该列表:(并且您忘记参数{{1在函数中)
urbanResponse