基本上,我一直在尝试从Bungie API中获取数据,直到现在为止我一直都很成功。我正在尝试读取此JSON文件。 http://prntscr.com/k3tin3
但是我不确定如何从json中获取一个节点,然后使用它来请求字符数据?
到目前为止,这是我最好的猜测,但显然不起作用,我想念什么? :/
$.ajax({
url: "https://www.bungie.net/Platform/Destiny2/4/Profile/" + searchField + "/?components=100,200",
headers: {
"X-API-Key": apiKey
}
}).done(function(json){
if(JSON.stringify(json.Response.profile.data.characterIds[0])){
var char_slot_0 = JSON.stringify(json.Response.profile.data.characterIds[0]).replace(/[\"\"]/g, "");
var char_slot_0_class = JSON.stringify(json.Response.characters.data.+ char_slot_0 +.classType);
}
});
当前抓取characterIds工作正常,这是我无法工作的第二行。我是否需要打另一个电话,而不是在同一个电话中拨打电话?
编辑:我试图使用结果变量char_slot_0返回:2305843009303234831.作为新json字符串化请求中的节点。
答案 0 :(得分:0)
为什么要对传入的json对象进行字符串化?您应该只能使用常规属性访问器(点运算符)访问这些字段。 var char_slot_0_class = JSON.stringify(json.Response.characters.data.+ char_slot_0 +.classType);
行看起来像无效的javascript。
答案 1 :(得分:0)
if(JSON.stringify(json.Response.profile.data.characterIds[0])){
var char_slot_0 = JSON.stringify(json.Response.profile.data.characterIds[0]).replace(/[\"\"]/g, "");
var char_slot_0_class = JSON.stringify(json.Response.characters.data[char_slot_0].classType);
}
从异端猴子的评论中读到Dynamically access object property using variable的可能副本后,我找到了解决方法!谢谢!