【问题标题】:javascript json ajax data parsingjavascript json ajax 数据解析
【发布时间】:2015-11-27 17:33:52
【问题描述】:

我是 ajax 和 jquery 编程的新手。我正在设计天气网络应用程序,它在网站上显示某个城市的天气。我已经能够成功地在网站上显示天气。但现在我想从 JSON 中获取温度并将其转换为华氏温度。这是我的网络应用程序代码

        $(function(){


     $('#clickme').click(function() {
         $("#weather").empty();

        var search_City2 = $("#c1").val();

        $.ajax({
          url: 'http://localhost:3000/?id='+search_City2,
          dataType: 'json',
          success: function(data) {
             var items = [];

             $.each(data, function(key, val) {

               items.push('<li id="' + key + '">' + key + ' : '+ val + '</li>');

             });

             $('<ul/>', {
                'class': 'weather-list',
                html: items.join('')
             }).appendTo('#weather');
             var city = search_City2;


          },
         statusCode: {
            404: function() {
              alert('There was a problem with the server.  Try again soon!');
            }
          }
       });
     });
 });

这是我的 JSON 数据

{ text: 'Light Rain',
  temp: '12',
  date: 'Fri, 27 Nov 2015 11:00 am EST',
  high: '14',
  low: '-2' }

【问题讨论】:

  • console.dir(jQuery.parseJSON(data)); 在你的成功功能中产生了什么?
  • 在控制台日志中为“null”
  • 所以对服务器的调用什么也没有返回...? console.dir(data) 或者只是带有单引号的 JSON(无效 JSON)
  • 这是回复“对象日期:“周五,2015 年 11 月 27 日下午 12:59 EST”高:“13”低:“-1”温度:“12”文本:“小雨” " 当我使用 "console.dir(data)" 时

标签: jquery html css json ajax


【解决方案1】:

试试看。

var jsObj = jQuery.parseJSON(data); // Convert string JSON to object

if (jsObj.temp) {

    var temp = parseFloat(jsObj.temp.toString());
    var tempFahrenheit = temp * 33.8; // 1 Celcuis = 33.8 Fahrenheit

    console.log('Temperature: ' + tempFahrenheit + 'ºF');
}

【讨论】:

  • 出现错误“未捕获的 TypeError:无法读取属性 'temp' of null”
  • 如果条件变为“if (jsObj && jsObj.temp)”
  • 它会运行我的脚本,但不会将任何内容记录到控制台中这是我调试它时得到的结果“jsObj = null, temp = undefine”
【解决方案2】:

这是工作代码...

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
  <script>
      $(document).ready(function(){
          var data = { text: 'Light Rain',
                       temp: '12',
                       date: 'Fri, 27 Nov 2015 11:00 am EST',
                       high: '14',
                       low: '-2' };

          $.each(data, function (k, v) {
              if(k == 'temp'){
                  var cToFahr = v * 9 / 5 + 32;
                  console.log(v, cToFahr);
              }
          });
     });
   </script>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 2016-08-02
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2016-03-19
    • 2015-12-12
    相关资源
    最近更新 更多