当前位置: 首页 > 知识库问答 >
问题:

使用TMDb API的JSON输入意外结束

乌修筠
2023-03-14

我正在尝试解析从Movie DB返回的JSON数据。我收到一个错误,告诉我我收到以下错误:

Uncaught SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at XMLHttpRequest.movieReq.onreadystatechange (discover.js:34)
    at loadIMDBDetails (discover.js:38)
    at MainFunc (discover.js:68)
    at discover.js:5
I am accessing individual movie information using the following XMLHttpRequest:

MovieReq.Open('get','https://api.themoviedb.org/3/movie/299537?api_key=',false);

我还有其他XMLHttpRequests可以很好地返回JSON数据。这些请求使用API的discover函数。

这是产生问题的函数

function loadIMDBDetails(mO, i) {
    movieReq = new XMLHttpRequest();

    movieReq.onreadystatechange = function () {
        var parsedObj = JSON.parse(movieReq.responseText);
        mO.imdbId = parsedObj['imdb_id'];
    };
    movieReq.open('GET', 'https://api.themoviedb.org/3/movie/299537?api_key=34f8307d9addabf7924eab7f22cabb23', false);
    movieReq.send();
}

When using console.log to return the responseText, this is the result:

{“成人”:false,“backdrop_path”:“/w2pmyoylu22yvrgk3smvm9fw1jj.jpg”,“bongs_to_collection”:null,“budget”:152000000,“genres”:[{“id”:28,“name”:“action”},{“id”:12,“name”:“adventure”},{“id”:878,“name”:“science fiction”}],“homepage”:“https://www.Marvel.com/movies/captain-marvel”,“id”:“:910298835,”运行时“:124,”spoken_languages“:[{”iso_639_1“:”en“,”name“:”english“}],”status“:”released“,”tagline“:”higher.进一步。更快。“,”标题“:”漫威船长“,”视频“:false,”Vote_Average“:7.3,”Vote_Count“:2885}

共有1个答案

归俊
2023-03-14

结果我忘记为onreadystatechange事件添加检查。我添加了以下检查并在if语句中运行了json解析,这就解决了我的问题!

movieReq.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
        var parsedObj = JSON.parse(movieReq.responseText);
        mO.imdbId = parsedObj['imdb_id'];
    }
};

 类似资料:
  • 问题内容: 我正在研究一些代码来解析来自HTTP响应的JSON数据。我的代码看起来像这样: 变量中的json 如下所示: 但是,不是零。当我打印出来时,上面写着。是什么原因造成的?JSON似乎有效。此错误与我的自定义结构有关吗? 提前致谢! 问题答案: 所述的结果是一个语法错误在JSON输入(可能丢失,或)。该错误不取决于您解码到的值的类型。 我在操场上使用示例JSON输入运行了代码。它运行没有错

  • 问题内容: 我正在使用fetch()从api服务器获取数据。我的错误如下所示: 你能告诉我我在做什么错。 问题答案: 一种用于响应请求到跨源资源具有“不透明”的响应类型。如果在尝试将响应转换为JSON之前记录响应,您将看到一种“不透明”的类型。 不透明类型被列为“严重受限”。 不透明的已过滤响应是已过滤的响应,其类型为“不透明”,URL列表为空列表,状态为0,状态消息为空字节序列,标头列表为空,主

  • 我使用fetch()从api服务器获取数据。我的错误是这样的: 你能告诉我我做错了什么吗。

  • 我正在尝试在Go API服务器和基于React的前端之间发送JSON。我得到以下错误: 错误:SyntaxError:JSON输入意外结束 它说这发生在第25行,这是 这是相关的函数: 在尝试了一些故障排除之后,我将错误捕捉添加到带有“成功”和“错误”输出的函数中,这样它至少可以停止弹出错误页面,并在API服务器上添加一些控制台输出,以查看数据是否正在传递。 除了出现错误之外,一切似乎都在按预期运

  • 我试图使用下面的代码从一个api网站获取一个JSON文件,但是当我使用下面的代码获取时,我得到一个错误,说“JSON输入意外结束”

  • 我试图创建一个nuxt项目使用npx create-nuxt-app和我有这个错误haw我可以解决它。 npm错误!在分析“”附近时JSON输入意外结束。。。THtwvnO2F9FWD7HrMJoGZ' npm错误!此运行的完整日志可在以下位置找到:npm ERR /home/ferdinand/。npm/_日志/2019-09-06T11_50_45_307Z-debug。日志 /home/fe