[英]How to print JSON objects correctly after successful JSONP request with Javascript
How to correctly parse/print JSON "scores" objects into demo div (I need just away, home and score data of each)? 如何正确地将JSON“分数”对象解析/打印到demo div(我只需要离开,住家并为每个对象评分数据)?
My JSON query look like this (code below is also working) 我的JSON查询如下所示(下面的代码也有效)
{ "query": { "count": 18, "created": "2016-09-07T06:10:58Z", "lang": "fi", "results": { "json": [ { "scores": { "away": "ESBJERG ENERGY", "home": "EV ZUG", "match_type": "fin", "status": "fin", "matchId": "1311357", "score": "3-2", "image": "EUROPE (IIHF)" } }, { "scores": { "away": "HC DAVOS", "home": "ROUEN", "match_type": "fin", "status": "fin", "matchId": "1311356", "score": "2-3", "image": "EUROPE (IIHF)"}}]}}}
<head> <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script> </head> <body> <div id="results"></div> <div id="resultsshouldbelikethis"> EV ZUG - ESBJERG ENERGY (3-2)<br> ROUEN - HC DAVOS (2-3)<br> ...and so on </div> <script> jQuery.support.cors = true; $.ajax({ url: "http://query.yahooapis.com/v1/public/yql?q=select%20scores%20from%20json%20where%20url%3D%22http%3a%2f%2fmobile.xscores.com%2fm_livescore%3fsport%3d4%26match_type%3dlive%26match_date%3d2016-09-06%26startPos%3d0%26endPos%3d5000%22%20limit%2050&format=json", type: "GET", timeout: 3000, dataType: "jsonp", success: function(parsa) { document.getElementById("results").innerHTML = parsa.query.scores; console.log(parsa); }, }); </script>
Console log works well but how to print results nicely into a div? 控制台日志效果很好,但是如何将结果很好地打印到div中呢? "parsa.query.scores;"
“ parsa.query.scores;” just results undefined.
只是结果不确定。
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery 2.1.4.min.js"></script>
</head>
<body>
<div id="results"></div>
<div id="resultsshouldbelikethis">
EV ZUG - ESBJERG ENERGY (3-2)<br>
ROUEN - HC DAVOS (2-3)<br>
...and so on
</div>
<script>
jQuery.support.cors = true;
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20scores%20from%20json%20where%20url%3D%22http%3a%2f%2fmobile.xscores.com%2fm_livescore%3fsport%3d4%26match_type%3dlive%26match_date%3d2016-09-06%26startPos%3d0%26endPos%3d5000%22%20limit%2050&format=json",
type: "GET",
timeout: 3000,
dataType: "jsonp",
success: function(parsa) {
var news = document.getElementsById("results");
var items = parsa.query.scores;
for(var i = 0; i < items.length; i++) {
var p= document.createElement("p");
p.innerHTML = items[i].away;
news.appendChild(p);
var p = document.createElement("p");
p.innerHTML = items[i].home;
news.appendChild(p);
var p = document.createElement("p");
p.innerHTML = items[i].score;
news.appendChild(p);
}
},
});
</script>
You aren't parsing the JSON properly. 您没有正确解析JSON。 Here is an example which shows the first score.
这是显示第一个分数的示例。 You have to iterate the results to show each score.
您必须迭代结果以显示每个分数。
<head> <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script> </head> <body> <div id="results"></div> <div id="resultsshouldbelikethis"> EV ZUG - ESBJERG ENERGY (3-2)<br> ROUEN - HC DAVOS (2-3)<br> ...and so on </div> <script> jQuery.support.cors = true; $.ajax({ url: "http://query.yahooapis.com/v1/public/yql?q=select%20scores%20from%20json%20where%20url%3D%22http%3a%2f%2fmobile.xscores.com%2fm_livescore%3fsport%3d4%26match_type%3dlive%26match_date%3d2016-09-06%26startPos%3d0%26endPos%3d5000%22%20limit%2050&format=json", type: "GET", timeout: 3000, dataType: "jsonp", success: function(parsa) { document.getElementById("results").innerHTML = parsa.query.results.json[0].scores.score; console.log(parsa); }, }); </script>
You need to loop each data one-by-one and add them into div. 您需要一个一个地循环每个数据,并将它们添加到div中。
Try this: 尝试这个:
jQuery.support.cors = true; $.ajax({ url: "http://query.yahooapis.com/v1/public/yql?q=select%20scores%20from%20json%20where%20url%3D%22http%3a%2f%2fmobile.xscores.com%2fm_livescore%3fsport%3d4%26match_type%3dlive%26match_date%3d2016-09-06%26startPos%3d0%26endPos%3d5000%22%20limit%2050&format=json" , type: "GET" , timeout: 3000 , dataType: "jsonp" , success: function (parsa) { var strHtml = ''; $.each(parsa.query.results.json, function (key, value) { strHtml += value.scores.home + ' - ' + value.scores.away; strHtml += '(' + value.scores.score + ')<br />'; }); document.getElementById("results").innerHTML = strHtml; } });
<head> <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script> </head> <body> <div id="results"></div> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.