解析多维JSON数组使用$.AJAX
Parse multidimensional JSON array using $.get AJAX
我有一个用于查找数组并使用AJAX和jQuery返回结果的表单。我有一个功能可以工作,但另一个不能,我确信在这一点上,我对过度分析和长时间的故障排除感到困惑。请让我知道我错过了什么。
基本表单元素:
<form name="theForm">
<input id="userName" value="myName" />
<input id="sumID" value="9999999" />
<input type="submit" onClick="summonerLookUp();" />
</form>
基本数组:
{"myName": {
"id": 9999999,
"name": "myName",
"profileIconId": 673,
"revisionDate": 1406601264000,
"summonerLevel": 26
}}
工作Javascript:
function summonerLookUp() {
var ID = "";
ID = $("#userName").val();
setKey();
if (ID !== "") {
$.ajax({
url: 'http://url-to-api',
type: 'GET',
dataType: 'json',
data: {
},
success: function (json) {
var userID = ID.replace(" ", "");
userID = userID.toLowerCase().trim();
summonerLevel = json[userID].summonerLevel;
summonerID = json[userID].id;
document.getElementById("sLevel").innerHTML
= summonerLevel;
document.getElementById("sID").innerHTML
= summonerID;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error getting Summoner data!");
}
});
} else {
}
}
返回:
召唤师等级:26
召唤师ID: 9999999
现在,当我尝试访问"pages"中的"Name"属性时,这个用户ID在以下数组中:
{"9999999": {
"pages": [
{
"masteries": [
{
"id": 4313,
"rank": 2
},
{
"id": 4121,
"rank": 1
},
{
"id": 4134,
"rank": 3
}
],
"id": 41932694,
"name": "Offense Main",
"current": true
},
{
"masteries": [
{
"id": 4123,
"rank": 3
},
{
"id": 4311,
"rank": 1
},
],
"id": 41932698,
"name": "Utility",
"current": false
},
{
"masteries": [
{
"id": 4143,
"rank": 3
},
{
"id": 4162,
"rank": 1
},
{
"id": 4131,
"rank": 1
}
],
"id": 41932702,
"name": "Offense",
"current": false
},
],
"summonerId": 9999999
}}
使用下面的,我没有得到我所期望的(即,进攻主):
function masteriesLookUp() {
var ID = "";
ID = $("#sumID").val();
setKey();
if (ID !== "") {
$.ajax({
url: 'http://url-to-api',
type: 'GET',
dataType: 'json',
data: {
},
success: function (json) {
var userID = ID;
summonerMastery = json[userID].pages;
document.getElementById("sMastery").innerHTML
= summonerMastery;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error getting Summoner data!");
}
});
} else {
}
}
返回:
[object Object],[object Object],[object Object],[object Object]
我肯定有几个问题,但我怀疑下面这行是特别的:
summonerMastery = json[userID].pages;
您可以通过以下方式获取页面名称
success: function (json) {
var userID = ID;
summonerMastery = json[userID].pages;
for(var page in summonerMastery){
document.getElementById("sMastery").innerHTML += summonerMastery[page].name+" ";
}
}
编辑:要检查特定的单词,您可以这样做
for(var page in summonerMastery){
if(summonerMastery[page].name.toLowerCase().indexOf("offense") !== -1){
// do your stuff here.
}
}
编辑2:在HTML
中添加一个按钮(或者在AJAX
调用的success
处理程序中动态创建一个按钮)
<input type="button" id="check" data-info="" style="display:none;" value="Check" />
javascript
success: function (json) {
var userID = ID;
summonerMastery = json[userID].pages;
var b = $("#check");
b.data("info",summonerMastery);
b.off('click').on('click',function(){
var summonerMastery = $(this).data('info');
for(var page in summonerMastery){
if(summonerMastery[page].name.toLowerCase().indexOf("offense") !== -1){
alert("Success");
} else {
alert("Failure");
}
}
});
b.css('display','block');
}
相关文章:
- 如何在Javascript中解析AJAX数组的特定部分
- 访问$.ajax()函数中的两个不同数组
- 作为一个二维数组,从ajax接收
- 如何在不使用ajax的情况下将pair值添加到数组并发送到django中的视图
- 将数组从ajax传递到python(Tornado)
- ajax成功地将数组中的数据放入表中各自的输入中
- jQuery Ajax数组序列化错误
- AJAX jquery json将数组发送到php
- 如何显示从Ajax请求返回的数组.使用Yii2
- 后关联数组使用jquery ajax
- 将ajax数组缓冲区响应绘制到画布中
- 使用Javascript数组或JSON来存储AJAX请求的返回值,以备将来使用
- 通过iron-ajax初始化对象数组(链接到caller's元素的响应)
- Ajax数组只返回1个值
- ajax数组上的PHP序列化不起作用
- 如何调用php json编码传递的ajax数组?zend框架2
- 我应该将php json编码转换为Ajax数组,第一次对我来说很难理解
- 通过JSON AJAX数组访问数据->对象
- 如何创建一个ajax数组和修改它没有回调函数
- 如何使用 Java 模拟 $.ajax 数组 POST 请求