javascript - 我将如何从外部 url 解析 json?

标签 javascript json

我对 js 比较陌生。我希望能够使用纯 javascript 从外部 url 解析 json。目前我正在使用

var getJSON = function(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
  var status = xhr.status;
  if (status === 200) {
    callback(null, xhr.response);
  } else {
    callback(status, xhr.response);
  }
};
xhr.send();
 };

 function statsget() {
 var uname = document.getElementById("nameget").value;
 var data = getJSON(`https://www.reddit.com/user/${uname}/circle.json`);
 var stats = JSON.parse(data);
 alert(data.is_betrayed);
 }

然而,这是行不通的。谁能帮我解决这个问题?谢谢!

最佳答案

首先你忘了将回调函数作为第二个参数传递给 getJSON,它应该被调用 当您的 xhr 返回数据时。 其次,当您从服务器请求 JSON 文件并将 responseType 设置为 JSON 时,您不需要将数据解析为 json,这将自动为您完成。

var getJSON = function(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
  var status = xhr.status;
  if (status === 200) {
    callback(null, xhr.response);
  } else {
    callback(status, xhr.response);
  }
};
xhr.send();
 };


function yourCallBackFunction(err, data){
    if(err){
        //Do something with the error 
    }else{
        //data  is the json response that you recieved from the server
    }

}

 function statsget() {
 var uname = document.getElementById("nameget").value;
 var data = getJSON(`https://www.reddit.com/user/${uname}/circle.json`, yourCallBackFunction);

 }

如果您需要更多详细信息,请告诉我。

关于javascript - 我将如何从外部 url 解析 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49623022/

相关文章:

javascript - 如何使用 ID 从点击事件的 JSON 文件中获取值并在表单中显示值

java - Jackson:为 Map 数据结构注册自定义 XML 序列化程序

JavaScript 对象迭代

javascript - 如何使用javascript删除Android webview中的内置边距

javascript - 将 $_GET 值传递给加载 jquery 的网页

javascript - 计时器用完后如何打开模态弹出窗口?

javascript - 传单 : icon based on data source

javascript - 有什么方法可以在 javascript 循环内强制重新绘制 DOM 元素吗?

javascript - foreach 内的 textContent 无法运行,没有错误

javascript - 获取 JSON 数据