我想自动将从IMDB中提取的类型添加到我的类别中。 我制作了JSON代码来为我做到这一点。
$('input[name=Checkbx]').click(function() {
var coc = $('input[name=Checkbx2]').get(0).value;
// Send Request
$.getJSON("http://www.omdbapi.com/?i=" + coc + "&plot=short&r=json", function(data) {
var valDir = "";
var valWri = "";
var valAct = "";
$.each(data, function(key, val) {
$('input[name=' +key+ ']').val(val);
if(key == "Director"){
valDir+= " "+val+",";
}
if(key == "Genre"){
var genr = "";
$.each( data.Genre, function( key, val ) {
genr += "" + val + ", ";
genr1 = val;
$('input[name=newcategory]').val( genr1 );
$('#category-add-submit').trigger('click');
$('#category-add-submit').prop("disabled", false);
$('input[name=newcategory]').val("");
});
$('input[name=' +key+ ']').val( genr );
}
if(key == "Actors"){
valAct+= " "+val+",";
}
if(key == "Year"){
$('#new-tag-<?php echo get_option('year'); ?>').val(val);
}
if(key == "Country"){
$('#new-tag-movie-country').val(val);
}
});
$('#new-tag-<?php echo get_option("director"); ?>').val(valDir);
$('#new-tag-<?php echo get_option("actor"); ?>').val(valAct);
});
});
郑重声明:我正在使用 omdbapi.com API 从 IMDB 获取数据,我的电影 ID 用于测试tt0111161
,JSON 输出为:
{"Title":"The Shawshank Redemption","Year":"1994","Rated":"R","Released":"14 Oct 1994","Runtime":"142 min","Genre":"Crime, Drama","Director":"Frank Darabont","Writer":"Stephen King (short story '"Rita Hayworth and Shawshank Redemption'"), Frank Darabont (screenplay)","Actors":"Tim Robbins, Morgan Freeman, Bob Gunton, William Sadler","Plot":"Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.","Language":"English","Country":"USA","Awards":"Nominated for 7 Oscars. Another 14 wins & 20 nominations.","Poster":"http://ia.media-imdb.com/images/M/MV5BODU4MjU4NjIwNl5BMl5BanBnXkFtZTgwMDU2MjEyMDE@._V1_SX300.jpg","Metascore":"80","imdbRating":"9.3","imdbVotes":"1,610,411","imdbID":"tt0111161","Type":"movie","Response":"True"}
一切正常。 我的意思是演员、导演和演员是自动添加的。 我的问题是流派。
我有这个错误:
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in Crime, Drama
我的 JQuery 版本是 2.2.1。 我该如何解决这个问题?
JSON 中的 "Genre"
字段如下所示:
"Genre":"Crime, Drama"
这是一个字符串,其中包含两个用逗号分隔的单词。它不是一个包含两个字符串的数组。不能使用 $.each
迭代单个字符串。
您需要首先使用 String.split()
将字符串拆分为字符串数组:
$.each( data.Genre.split(/'s*,'s*/), function( key, val ) {
这使用正则表达式在每个逗号(包括可能的空格)处拆分Genre
字符串。结果是一个数组["Crime", "Drama"]
$.each
可以迭代该数组。