Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 解析json流时遇到问题_Jquery_Json - Fatal编程技术网

Jquery 解析json流时遇到问题

Jquery 解析json流时遇到问题,jquery,json,Jquery,Json,解析来自api.world.weather.com的json请求时遇到问题,下面是我正在使用的代码。当我在控制台上查看JSON时,看起来我调用的是正确的数据,但却出现了错误。例如:ReferenceError:未定义天气 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Temp</title> <style&

解析来自api.world.weather.com的json请求时遇到问题,下面是我正在使用的代码。当我在控制台上查看JSON时,看起来我调用的是正确的数据,但却出现了错误。例如:ReferenceError:未定义天气

    <!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Temp</title>
  <style>
    html {margin:2em; font-size:2em; font-family:Helvetica, Arial, sans-serif;}
    h1 {margin:0 0 0.2em; color:#369;}
    img {float:left; margin-right:1em;}
    ul {float:left; margin:0; padding:0; list-style:none;}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
  <section>
    <h1>Current Weather for </h1>
    <div class="img" id="data-img"></div>
    <ul>
      <li><b>Conditions:</b> <span id="data-current"></span></li>
      <li><b>Temperature:</b> <span id="data-temp"></span>&deg;</li>
      <li><b>Humidity:</b> <span id="data-humidity"></span>%</li>
      <li><b>Wind Speed:</b> <span id="data-wind"></span>mph</li>
      <li id="zip"></li>
      <li id="country"></li>
      <li id="api"></li>
    </ul>
  </section>
  <script>
        var zipcode = '27560';
        var appid = 'XXXXXXXXXXXXXXXXXXXXXX';
        var startdate = '2015-10-01';
        var enddate = '2015-10-28';

        $.getJSON('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?q='+ zipcode +'&format=json&date='+ startdate +'&enddate='+ enddate +'&key='+ appid, function(data){ 
            console.log(data);
            $("#data-current").text(data.weather[0].date);
            $("#data-temp").text(data.hourly[0].tempF);
            $("#data-humidity").text(data.hourly[0].humidity);
            $("#data-wind").text(data.hourly[0].windspeedMiles);
        })
        .fail(function(jqxhr, textStatus, error) {
        console.log("Request Failed" + textStatus + "," + error);
        }); 
  </script>
</body>
</html>

临时雇员
html{margin:2em;字体大小:2em;字体系列:Helvetica,Arial,无衬线;}
h1{边距:0.2em;颜色:#369;}
img{float:左;margin right:1em;}
ul{float:left;边距:0;填充:0;列表样式:none;}
香港现时天气
  • 条件:
  • 温度:°
  • 湿度:%
  • 风速:英里/小时
var zipcode='27560'; 变量appid='XXXXXXXXXXXXXXXXXXXXXX'; 风险值起始日期='2015-10-01'; var enddate=‘2015-10-28’; $.getJSON('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?q='+zipcode+'&format=json&date='+startdate+'&enddate='+enddate+'&key='+appid,函数(数据){ 控制台日志(数据); $(“#数据当前”).text(data.weather[0].date); $(“#数据温度”).text(data.hourly[0].tempF); $(“#数据湿度”).text(data.hourly[0]。湿度); $(“#数据风”).text(data.hourly[0].windspeedMiles); }) .fail(函数(jqxhr、textStatus、error){ log(“请求失败”+textStatus+,“+错误”); });
此JSON流返回的JSON具有以下结构:

{
    data: {
        request: [],
        weather: [
            hourly: []
        ],
    }
}
这意味着您从
getJSON
调用返回的对象上有一个data属性,但您试图访问
weather
属性,该属性仅在
data
级别上

您必须将代码更改为:

$("#data-current").text(data.data.weather[0].date);
$("#data-temp").text(data.data.weather[0].hourly[0].tempF);
$("#data-humidity").text(data.data.weather[0].hourly[0].humidity);
$("#data-wind").text(data.data.weather[0].hourly[0].windspeedMiles);

临时雇员
html{margin:2em;字体大小:2em;字体系列:Helvetica,Arial,无衬线;}
h1{边距:0.2em;颜色:#369;}
img{float:左;margin right:1em;}
ul{float:left;边距:0;填充:0;列表样式:none;}
香港现时天气
  • 条件:
  • 温度:°
  • 湿度:%
  • 风速:英里/小时
var zipcode='27560'; 变量appid='96afa96cadeb7165258ae95b77fdc'; 风险值起始日期='2015-10-01'; var enddate=‘2015-10-28’; $.getJSON('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?q='+zipcode+'&format=json&date='+startdate+'&enddate='+enddate+'&key='+appid,函数(数据){ var数据=data.data; $(“#数据当前”).text(data.weather[0].date); $(“#数据温度”).text(data.hourly[0].tempF); $(“#数据湿度”).text(data.hourly[0]。湿度); $(“#数据风”).text(data.hourly[0].windspeedMiles); }) .fail(函数(jqxhr、textStatus、error){ log(“请求失败”+textStatus+,“+错误”); });
您的数据是
data.data并且您没有正确读取索引。请将脚本更改为:

<script>
        var zipcode = '27560';
        var appid = '96afa96cadeb7165258ae95b77fdc';
        var startdate = '2015-10-01';
        var enddate = '2015-10-28';

        $.getJSON('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?q='+ zipcode +'&format=json&date='+ startdate +'&enddate='+ enddate +'&key='+ appid, function(data){ 

            var newdata=data.data;
            console.log(newdata);
            $("#data-current").text(newdata.weather[0].date);
            $("#data-temp").text(newdata.weather[0].hourly[0].tempF);
            $("#data-humidity").text(newdata.weather[0].hourly[0].humidity);
            $("#data-wind").text(newdata.weather[0].hourly[0].windspeedMiles);
        })
        .fail(function(jqxhr, textStatus, error) {
        console.log("Request Failed" + textStatus + "," + error);
        }); 
  </script>

var zipcode='27560';
变量appid='96afa96cadeb7165258ae95b77fdc';
风险值起始日期='2015-10-01';
var enddate=‘2015-10-28’;
$.getJSON('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?q='+zipcode+'&format=json&date='+startdate+'&enddate='+enddate+'&key='+appid,函数(数据){
var newdata=data.data;
console.log(newdata);
$(“#数据当前”).text(newdata.weather[0].date);
$(“#数据温度”).text(newdata.weather[0].hourly[0].tempF);
$(“#数据湿度”).text(newdata.weather[0]。hourly[0]。湿度);
$(“#数据风”).text(newdata.weather[0].hourly[0].windspeedMiles);
})
.fail(函数(jqxhr、textStatus、error){
log(“请求失败”+textStatus+,“+错误”);
}); 

请提供您从控制台.log(数据)获取的数据?谢谢@Loyalar它解析了第一个请求:但是我在剩下的请求上出错了。它确实帮助了@Loyalar,但是我在第一个请求下面的三个请求上出错了,有什么想法吗?啊。这是因为
hourly
属性位于
weather
对象上,而不是
data
对象上。我将编辑我的帖子来反映这一点。是的,我自己也看到了。我已经更新了。谢谢
<script>
        var zipcode = '27560';
        var appid = '96afa96cadeb7165258ae95b77fdc';
        var startdate = '2015-10-01';
        var enddate = '2015-10-28';

        $.getJSON('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?q='+ zipcode +'&format=json&date='+ startdate +'&enddate='+ enddate +'&key='+ appid, function(data){ 

            var newdata=data.data;
            console.log(newdata);
            $("#data-current").text(newdata.weather[0].date);
            $("#data-temp").text(newdata.weather[0].hourly[0].tempF);
            $("#data-humidity").text(newdata.weather[0].hourly[0].humidity);
            $("#data-wind").text(newdata.weather[0].hourly[0].windspeedMiles);
        })
        .fail(function(jqxhr, textStatus, error) {
        console.log("Request Failed" + textStatus + "," + error);
        }); 
  </script>