如何在javascript中推送json数据?
我有一个json文件,该文件包含如下格式的数据:如何在javascript中推送json数据?,javascript,jquery,json,Javascript,Jquery,Json,我有一个json文件,该文件包含如下格式的数据: { "rigidBodies": [ { "name": "ball1.png", "imagePath": "ball1.png", "origin": {"x": 0, "y": 0}, "polygons": [ [ {"x": 0.16999998688697815, "y": 0.5724999
{
"rigidBodies": [
{
"name": "ball1.png", "imagePath": "ball1.png", "origin": {"x": 0, "y": 0},
"polygons": [
[
{"x": 0.16999998688697815, "y": 0.5724999904632568},
{"x": 0.16749995946884155, "y": 0.5324999690055847},
{"x": 0.16999998688697815, "y": 0.45250001549720764}
],
[
{"x": 0.16999998688697815, "y": 0.45250001549720764},
{"x": 0.16749995946884155, "y": 0.375},
{"x": 0.2199999988079071, "y": 0.3725000023841858}
]
]
}
]
}
我想将数据推送到一个数组中,所以我尝试了这种方法,结果显示错误
var poly = new Array();
// note : parsing json
$.getJSON('my_assets/addPhysics/testPhysics.json', function(data) {
//do stuff with your data here
$.each(data, function(i, item) {
// for(var i=0;i<item[0].length;i++){
poly.push(item[0][i].x,item[0][i].y);
//}
});
});
数据是一个对象,要循环通过的数组位于刚体数组中的“多边形”属性中。您需要执行以下操作:
风险值数据={
刚体:[{
名称:ball1.png,
imagePath:ball1.png,
来源:{
x:0,,
y:0
},
多边形:[
[{
x:0.1699998688697815,
y:0.572499904632568
}, {
x:0.16749995946884155,
y:0.5324999690055847
}, {
x:0.1699998688697815,
y:0.45250001549720764
}],
[{
x:0.1699998688697815,
y:0.45250001549720764
}, {
x:0.16749995946884155,
y:0.375
}, {
x:0.219999988079071,
y:0.3725000023841858
}]
]
}]
}
var poly=[];
$.eachdata.rigidBodies,functioni,body{
$.eachbody.polygons,functionj,polygon{
$.eachpolygon、functionk、coords{
poly.push[coords.x,coords.y];
};
};
};
document.getElementByIdoutput.innerHTML=JSON.stringifypoly;
你应该试试这个
poly.push[item[0][i].x,item[0][i].y];
所以poly[0][0]是X
而poly[0][1]是Y数据不是数组,它是object,那么如何获取json文件的“x”和“Y”并推送到数组中呢?问题还不清楚。你只想要刚体数组的第一个对象吗?第二行应该是-$.eachbody.polygons,functionj,item{//do something}否则它会显示一个错误。是的,很抱歉,我刚刚注意到数组是空的,我试图在控制台中打印数组,但它什么也不打印。现在你已经将JSON格式化为可读格式了,我看到多边形是一个二维数组。因此需要另一个级别的$.each。这就是$.getJSON所做的。