Jquery javascript-json-ajax数据解析
我不熟悉ajax和jquery编程。我正在设计一个天气网络应用程序,在网站上显示某个城市的天气。我已经能够成功地在网站上显示天气。但现在我想从JSON中获取温度,并将其转换为华氏温度。这是我的web应用程序代码Jquery javascript-json-ajax数据解析,jquery,html,css,json,ajax,Jquery,Html,Css,Json,Ajax,我不熟悉ajax和jquery编程。我正在设计一个天气网络应用程序,在网站上显示某个城市的天气。我已经能够成功地在网站上显示天气。但现在我想从JSON中获取温度,并将其转换为华氏温度。这是我的web应用程序代码 $(function(){ $('#clickme').click(function() { $("#weather").empty(); var search_City2 = $("#c1").val();
$(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!');
}
}
});
});
});
试试看
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');
}
这是工作代码
<!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>
$(文档).ready(函数(){
var data={text:'小雨',
温度:'12',
日期:美国东部时间2015年11月27日星期五上午11:00,
高:'14',
低:'-2'};
$。每个(数据、函数(k、v){
如果(k=='temp'){
变量cToFahr=v*9/5+32;
控制台日志(v,cToFahr);
}
});
});
看看这个答案:console.dir(jQuery.parseJSON(data))代码>在您的成功函数中生成?在控制台日志中它是“null”,所以对服务器的调用不会返回任何结果console.dir(data)
或者它只是带单引号的JSON(这是无效的JSON)这是回复“对象日期:Fri,2015年11月27日12:59 pm EST”高:“13”低:“-1”temp:“12”文本:“小雨”,当我使用“console.dir(data)“getting error”Uncaught TypeError:如果条件更改为“如果(jsObj&&jsObj.temp)”它确实运行我的脚本,但不将任何内容登录到控制台,这就是我调试它时得到的结果“jsObj=null,temp=undefine”
<!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>