首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从XmlHttpRequest.responseJSON解析JSON

从XmlHttpRequest.responseJSON解析JSON
EN

Stack Overflow用户
提问于 2009-12-29 13:59:41
回答 2查看 284.1K关注 0票数 117

我正在尝试用javascript解析一个bit.ly JSON响应。

我通过XmlHttpRequest获取JSON。

代码语言:javascript
复制
var req = new XMLHttpRequest;  
req.overrideMimeType("application/json");  
req.open('GET', BITLY_CREATE_API + encodeURIComponent(url)
          + BITLY_API_LOGIN, true);  
var target = this;  
req.onload  = function() {target.parseJSON(req, url)};  
req.send(null);

parseJSON: function(req, url) {  
if (req.status == 200) {  
    var jsonResponse = req.responseJSON;  
    var bitlyUrl = jsonResponse.results[url].shortUrl;  
}

我在一个firefox插件中实现了这一点。当我运行时,我得到var bitlyUrl = jsonResponse.results[url].shortUrl;行的错误"jsonResponse is undefined“。我在这里解析JSON是不是做错了什么?或者这段代码出了什么问题?

EN

回答 2

Stack Overflow用户

发布于 2017-08-04 16:28:05

您可以简单地设置xhr.responseType = 'json';

代码语言:javascript
复制
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts/1');
xhr.responseType = 'json';
xhr.onload = function(e) {
  if (this.status == 200) {
    console.log('response', this.response); // JSON response  
  }
};
xhr.send();

Documentation for responseType

票数 31
EN

Stack Overflow用户

发布于 2011-03-21 14:29:14

如果这用于FF扩展,请使用nsIJSON

代码语言:javascript
复制
var req = new XMLHttpRequest;
req.overrideMimeType("application/json");
req.open('GET', BITLY_CREATE_API + encodeURIComponent(url) + BITLY_API_LOGIN, true);
var target = this;
req.onload = function() {target.parseJSON(req, url)};
req.send(null);

parseJSON: function(req, url) {
if (req.status == 200) {
  var jsonResponse = Components.classes["@mozilla.org/dom/json;1"]
      .createInstance(Components.interfaces.nsIJSON.decode(req.responseText);
  var bitlyUrl = jsonResponse.results[url].shortUrl;
}

对于网页,只需使用JSON.parse而不是Components.classes["@mozilla.org/dom/json;1"].createInstance(Components.interfaces.nsIJSON.decode

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1973140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档