我在尝试使用jQuery和JSON返回特定记录时遇到问题.我将一个变量传递给函数,并且只想输出与执行函数时设置的id匹配的数据.
现在,我的函数看起来像这样:
function getEffectsData(myNum){
$.getJSON("jsonscript.php", { id: +myNum },function(data){
var x = data.x;
//DO SOME STUFF
});
}
Run Code Online (Sandbox Code Playgroud)
JSON输出如下所示:
{"stuff": [ { "id":1, "x":3, "y":6, "z":-6 },{ "id":2, "x":2, "y":7, "z":-3 }]}
我唯一知道的是正确的变量被传递给函数.之后,没有任何反应.非常新的,所以任何帮助都非常感谢.
编辑:我感谢大家对此的意见.为了澄清,我试图仅从id与myNum匹配的对象返回数据.我希望能够访问该对象的所有数据,但只能访问该对象.我不知道该对象在数组中的位置.我简化了问题中的ID和数据,以帮助澄清问题.
再次感谢.
你可以从你的JSON访问x,如下所示:
var x1 = data.stuff[0].x; // the first object's x key
var x2 = data.stuff[1].x; // the second object's x key
Run Code Online (Sandbox Code Playgroud)
因为您的JSON树看起来像这样:
{ // base object
"stuff": [ // array
{ // 0.: object
"id": 1, // key => value
"x" : 3, // key => value
"y" : 6, // key => value
"z" : -6 // key => value
},
{ // 1.: object
"id": 2, // key => value
"x" : 2, // key => value
"y" : 7, // key => value
"z" : -3 // key => value
}]
}
Run Code Online (Sandbox Code Playgroud)
所以data.stuff[0].x你选择stuff对象然后它的first元素然后它的x键.
但是如果你想要处理所有的x键,那么你需要stuff通过一个简单的for循环或$.each方法循环遍历数组.
UPDATE
至于你的问题.如果你想获得带有id的对象,myNum你有两种可能:
如果你拥有,jsonscript.php你可以只从服务器发送带有正确id的数据,因为你传递id到它{ id: +myNum }的第二个参数getJSON
循环遍历数据,直到找到具有正确ID的对象
var object;
$.each(data.stuff, function(i, obj) {
if (obj.id === myNum) object = obj;
});
// now object is the one with the right id
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
19806 次 |
| 最近记录: |