Javascript 检查json并仅显示可用数据
我正在开发一个简单的网站,它使用json获取数据 代码如下所示: 索引:Javascript 检查json并仅显示可用数据,javascript,jquery,json,Javascript,Jquery,Json,我正在开发一个简单的网站,它使用json获取数据 代码如下所示: 索引: <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="mo
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Linköping</title>
<link type="text/css" rel="stylesheet" media="all" href="css/main.css" />
<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="js/textmetrics.js"></script>
<script type="text/javascript">
var config = {
// General config
slideTime: 15*1000,
fadeTime: 3*1000,
// Time
timeUpdate: 60*1000,
// Names
nameDayUrl: 'namedays.json',
nameUpdate : 60*1000,
// Events
eventUrl: 'Idrottsevent.json',
eventUpdate : 1*1000,
// Weather
weatherUrl: 'http://api.openweathermap.org/data/2.5/find?lat=58.41&lon=15.62&cnt=1&units=metric&appid=2de143494c0b295cca9337e1e96b00e0',
weatherUpdate: 1800*1000
}
</script>
<div class="slide304" id="eventSlide">
<div class="center">
<div id="gameTicker1"></div>
</div>
</div>
<div class="slide304" id="eventSlide">
<div class="center">
<div id="gameTicker2"></div>
</div>
</div>
<div class="slide304">
<div class="center">
<div id="weatherTicker"></div>
</div>
</div>
<script type="text/javascript">
// Global data
var _names = {};
var _events = {};
var _games = {};
$(document).ready(function() {
// Get events
$.ajax({
url: config.eventUrl,
async: true,
cache: false,
method: 'GET',
success: function(result) {
_games = result;
setGame1();
setGame2();
},
error: function(xhr, status, error) {
_games = {};
}
});
function setGame1() {
// Select game.
var nowDate = getTimeForEvents();
var mm = addZero(nowDate.getMonth() + 1);
var d = addZero(nowDate.getDate());
var key = mm + "-" + d + "A";
var game = (typeof _games[key] != "undefined") ? _games[key] : "";
$('#gameTicker1').html((game == '') ? '' : game);
setFontSizeForCurrentSlide();
setTimeout(setGame1, config.eventUpdate);
}
function setGame2() {
// Select game.
var nowDate = getTimeForEvents();
var mm = addZero(nowDate.getMonth() + 1);
var d = addZero(nowDate.getDate());
var key = mm + "-" + d + "B";
var game = (typeof _games[key] != "undefined") ? _games[key] : "";
$('#gameTicker2').html((game == '') ? '' : game);
setFontSizeForCurrentSlide();
setTimeout(setGame2, config.eventUpdate);
}
林克平
变量配置={
//通用配置
幻灯片时间:15*1000,
fadeTime:3*1000,
//时间
时间更新:60*1000,
//名字
nameDayUrl:'namedays.json',
名称更新:60*1000,
//事件
eventUrl:'Idrottsevent.json',
事件更新:1*1000,
//天气
weatherUrl:'http://api.openweathermap.org/data/2.5/find?lat=58.41&lon=15.62&cnt=1&units=metric&appid=2de143494c0b295cca9337e1e96b00e0',
天气更新:1800*1000
}
//全球数据
var_name={};
var_事件={};
var_games={};
$(文档).ready(函数(){
//获取事件
$.ajax({
url:config.eventUrl,
async:true,
cache:false,
方法:“GET”,
成功:功能(结果){
_游戏=结果;
setGame1();
setGame2();
},
错误:函数(xhr、状态、错误){
_游戏={};
}
});
函数setGame1(){
//选择游戏。
var nowDate=getTimeForEvents();
var mm=addZero(nowDate.getMonth()+1);
var d=addZero(nowDate.getDate());
var键=毫米+“-”+d+“A”;
var game=(类型为_games[key]!=“未定义”)?_games[key]:“”;
$('#gameTicker1').html((game='')?'':game);
setFontSizeForCurrentSlide();
setTimeout(setGame1,config.eventUpdate);
}
函数setGame2(){
//选择游戏。
var nowDate=getTimeForEvents();
var mm=addZero(nowDate.getMonth()+1);
var d=addZero(nowDate.getDate());
var键=毫米+“-”+d+“B”;
var game=(类型为_games[key]!=“未定义”)?_games[key]:“”;
$('#gameTicker2').html((game='')?'':game);
setFontSizeForCurrentSlide();
setTimeout(setGame2,config.eventUpdate);
}
下面是json代码的一部分
"01-25A": "Dagens match:<br />TEST Linköpings VC-Hylte Halmstad<br />15:00 Linköpings sporthall",
“01-25A”:“Dagens比赛:
测试链接öpings VC Hylte Halmstad
15:00链接öpings sporthall”,
代码会检查当天每个游戏的日期和月份以及随附的字母。如果一天有两个游戏,那么游戏一有“A”,游戏二有“B”等等
现在,该网站通过JavaScript(SetGame1,SetGame2)浏览每一个游戏。在显示第一个游戏后,它会显示一个黑色幻灯片,因为json上只有一个游戏。我希望它做的是检查并确保它只在可用的游戏中滑动,并跳过json上不可用的游戏。如果json上只有一个游戏,则它不应尝试显示GameSet2
有人能帮我吗
更新:
完整的Json:
{
"12-27": [
"Dagens match:<br />KFUM Linköping-Falcao FC Stockholm<br />13:00 Linköpings Sporthall"
],
"12-28": [
"Dagens match:<br />LHC-Rögle BK<br />19:00 SAAB ARENA"
],
"12-30": [
"Dagens match:<br />LHC-Örebro Hockey<br />19:00 SAAB ARENA" ],
"01-02": [
"Dagens match:<br />Linköping Innebandy-Malmö FBC<br />14:10 SAAB ARENA",
"Dagens match:<br />Linköping Innebandy-Växjö IBK<br />17:10 SAAB ARENA"
],
"01-08": [
"Dagens match:<br />KFUM Linköping- Spartak Örebro Futsal Club<br />20:00 Linköpings Sporthall"
],
"01-10": [
"Dagens match:<br />Linköping Innebandy-Pixbo Wallenstam IBK<br />13:00 Folkungahallen",
"Dagens match:<br />Linköping Innebandy- FC Helsingborg<br />17:00 Linköpings Sporthall"
],
"01-13": [
"Dagens match:<br />Linköping Innebandy-IK Sirius IBK<br />19:00 Linköpings Sporthall"
],
"01-14": [
"Dagens match:<br />LHC-Färjestads BK<br />19:00 SAAB ARENA"
],
"01-16": [
"Dagens match:<br />Linköpings VC-Örkeljunga<br />15:00 Linköpings Sporthall"
],
"01-17": [
"Dagens match:<br />Linköping Innebandy-IBF Falun<br />13:00 Folkungahallen",
"Dagens match:<br />RP IF-GF Kroppskultur<br />13:30 Linköpings Sporthall",
"Dagens match:<br />RP IF Linköping-HK Silwing/Troja<br />16:00 Linköpings sporthall"
],
"01-23": [
"Dagens match:<br />Linköping VC-KFUM Eskilstuna volley<br />15:00 Folkungahallen",
"Dagens match:<br />LHC-Frölunda HC<br />16:00 SAAB ARENA"
],
"01-24": [
"Dagens match:<br />Linköpings VC-Hylte Halmstad<br />15:00 Linköpings sporthall"
],
"01-25A": "Dagens match:<br />TEST Linköpings VC-Hylte Halmstad<br />15:00 Linköpings sporthall",
"01-27": [
"Dagens match:<br />Linköpings VC-Södertelge<br />19:00 Linköpings sporthall"
],
"01-29": [
"Dagens match:<br />Linköping Innebandy-Endre IF<br />19:30 Folkungahallen",
"Dagens match:<br />Linköping HC-MODO Hockey<br />19:00 Stångebro Ishall"
],
"01-30": [
"Dagens match:<br />LHC-HV71<br />18:30:SAAB ARENA",
"Dagens match:<br />Linköping VC-Sollentuna<br />13:00 Folkungahallen",
"Dagens match:<br />Linköping HC-Brynäs IF<br />16:00 Stångebro Ishall",
"Dagens match:<br />Linköping Innebandy-Warberg IC<br />15:00 Linköpings Sporthall"
],
"01-31": [
"Dagens match:<br />Linköping HC-IF Sundsvall Hockey<br />12:00 Stångebro Ishall",
"Dagens match:<br />RP IF Linköping-Tyresö Handboll<br />13:30 Linköpings sporthall",
"Dagens match:<br />RP IF Linköping-Brännans HF<br />16:00 Linköpings sporthall"
],
"02-04": [
"Dagens match:<br />LHC-MODO Hockey<br />19:00 SAAB ARENA"
],
"02-13": [
"Dagens match:<br />RP IF Linköping-Lidingö SK<br />13:30 Linköpings sporthall",
"Dagens match:<br />RP IF Linköping-HK GP<br />16:00 Linköpings sporthall",
"Dagens match:<br />Linköping Innebandy-IBK Dalen<br />14:30 Motala Sporthall"
],
"02-16": [
"Dagens match:<br />LHC-Skellefteå AIK<br />19:00 SAAB ARENA"
],
"02-19": [
"Dagens match:<br />Linköping Innebandy-Pixbo Wallenstam IBK<br />19:00 Linköpings Sporthall"
],
"02-20": [
"Dagens match:<br />LHC-Växjö Lakers<br />16:00 SAAB ARENA",
"Dagens match:<br />Linköpings VC-Västerås VBK<br />15:00 Folkungahallen",
"Dagens match:<br />Linköping HC-SDE HF<br />12:00 Stångebro Ishall"
],
"02-21": [
"Dagens match:<br />Linköping HC-Leksands IF<br />13:00 SAAB ARENA",
"Dagens match:<br />Linköping Innebandy-Rönnby Västerås IBK<br />13:00 Folkungahallen"
],
"02-24": [
"Dagens match:<br />Linköpings VC-Sollentuna<br />19:00 Linköpings sporthall",
"Dagens match:<br />LHC-Rögle BK<br />19:00 SAAB ARENA"
],
"02-26": [
"Dagens match:<br />Linköping Innebandy-Huddinge IK<br />19:30 Folkungahallen"
],
"02-27": [
"Dagens match:<br />Linköpings VC-Tierp<br />15:00 Linköpings sporthall",
"Dagens match:<br />RP IF Linköping-Skara HF<br />13:30 Linköpings sporthall",
"Dagens match:<br />LHC-Brynäs IF<br />18:30 SAAB ARENA",
"Dagens match:<br />RP IF Linköping-Mantorps IF HF<br />16:00 Linköpings sporthall"
],
"03-01": [
"Dagens match:<br />LHC-Örebro Hockey<br />19:00 SAAB ARENA"
],
"03-05": [
"Dagens match:<br />Linköpings VC-Jomala IK<br />15:00 Folkungahallen",
"Dagens match:<br />LHC-HV71<br />16:00 SAAB ARENA",
"Dagens match:<br />Linköping Innebandy-IBK Dalen<br />17:15 Linköpings Sporthall"
],
"03-08": [
"Dagens match:<br />LHC-Malmö Redhawks<br />19:00 SAAB ARENA"
],
"03-09": [
"Dagens match:<br />Linköpings VC-Vingåker<br />19:00 Linköpings sporthall"
],
"03-19": [
"Dagens match:<br />Linköpings VC-Rissne IF<br />15:00 Folkungahallen",
"Dagens match:<br />RP IF Linköping-Skånela IF<br />17:00 Linköpings sporthall"
],
"03-20": [
"Dagens match:<br />RP IF Linköping-Enköpings HF<br />15:00 Linköpings sporthall"
]
}
{
"12-27": [
“达根斯比赛:
斯德哥尔摩肯德基林克奥平法尔考足球俱乐部
13:00林克奥平运动馆”
],
"12-28": [
“Dagens比赛:
LHC-Rögle BK
19:00萨博竞技场”
],
"12-30": [
“Dagens比赛:
LHC-Örebro曲棍球
19:00萨博竞技场”],
"01-02": [
“Dagens match:
林克平因内班迪马尔默FBC
14:10萨博竞技场”,
“达根斯比赛:
林克平因内班迪-维克斯乔伊布克
17:10萨博竞技场”
],
"01-08": [
“达根斯比赛:
肯德基林克平-斯巴达克奥雷布罗五人制俱乐部
20:00林克平运动馆”
],
"01-10": [
“Dagens match:
林克平因内班迪皮克斯博瓦伦斯坦伊布克
13:00 Folkungahallen”,
“达根斯比赛:
林克平因内班迪-赫尔辛堡足球俱乐部
17:00林克平体育馆”
],
"01-13": [
“达根斯比赛:
林克平Innebandy IK Sirius IBK
19:00林克平运动馆”
],
"01-14": [
“Dagens比赛:
LHC-Färjestads BK
19:00萨博竞技场”
],
"01-16": [
“达根斯比赛:
林克奥平斯VC-奥克尔荣加
15:00林克奥平斯体育馆”
],
"01-17": [
“达根斯比赛:
林克奥平因内班迪伊博法轮
13:00 Folkungahallen”,
“Dagens比赛:
RP IF-GF Kropskultur
13:30林克·平斯运动馆”,
“Dagens比赛:
如果林克平香港Silwing/Troja在16:00林克平运动馆举行,则为RP”
],
"01-23": [
“达根斯比赛:
林克öping VC-KFUM Eskilstuna截击
15:00 Folkungahallen”,
“Dagens比赛:
LHC Frölunda HC
16:00萨博竞技场”
],
"01-24": [
“Dagens比赛:
林克奥平斯VC Hylte Halmstad
15:00林克奥平斯运动厅”
],
“01-25A”:“Dagens比赛:
测试链接öpings VC Hyte Halmstad
15:00链接öpings sporthall”,
"01-27": [
“达根斯比赛:
林克奥平斯VC-S奥德特尔奇
19:00林克奥平斯运动馆”
],
"01-29": [
“达根匹配:
林克平因内班迪恩德如果
19:30 Folkungahallen”,
“达根斯比赛:
林克öping HC-MODO曲棍球
19:00 Stångebro Ishall”
],
"01-30": [
“Dagens比赛:
LHC-HV71
18:30:萨博竞技场”,
_games = result;
if(_games.hasOwnProperty("game1")) // assuming game1 is the key for game1, replace it with the actual key.
setGame1();
if(_games.hasOwnProperty("game2"))
setGame2();