如何将Json数据传递给JavaScript数组?

时间:2017-08-27 05:59:01

标签: javascript arrays json

我需要将我的json数据转换为Javascript数组,我在Data.json文件中使用以下数据,

[{
        "nid": 1,
        "Desc": "Extra Style Window",
        "Xvalue": "448",
        "Yvalue": "458",
        "ImgValue": "1"
    },
    {
        "nid": 2,
        "Desc": "Door",
        "Xvalue": "138",
        "Yvalue": "558",
        "ImgValue": "2"
    },
    {
        "nid": 3,
        "Desc": "Fittings",
        "Xvalue": "400",
        "Yvalue": "258",
        "ImgValue": "3"
    },
    {
        "nid": 4,
        "Desc": "Fittings Spare",
        "Xvalue": "168",
        "Yvalue": "102",
        "ImgValue": "3"
    }
]

我想要以下数组格式的上述数据,

var dataPoints = new Array([nid,"Desc",Xvalue,Yvalue,ImgValue],......[n]);

我使用波纹管代码为我的一方,但它不起作用,

var arr = [];
for (var prop in data) {
    arr.push(data[prop]);
}
console.log(data.name);
alert(data.name);

如何转换它,我在Json文件中有大量数据,请帮我解决这个问题。如果有任何其他解决方法请告诉我。

感谢。

4 个答案:

答案 0 :(得分:2)

您可以使用Javascript' var formattedArray = data.map(i => [i.nid, i.Desc, i.Xvalue, i.Yvalue, i.ImgValue]); 函数

完成此操作
var formattedArray = data.map(item => Object.keys(item).map(i => item[i]));

这将返回一个包含每个对象值的数组的数组:

enter image description here

如果你想要一种纯函数式的方法来解决这个问题(可以在任何数组上重用):

{{1}}

答案 1 :(得分:1)

您只需按照以下示例操作即可。

//var json_data= {name: "Dhana", age: 25};    
var json_data= [{"name":1,"age":7},{"name":5,"age":6}];
var result = [];

for(var i in json_data){
    var a=json_data[i]
    result.push(a);
   }

console.log(result[0].age);

如果存在单个或多个对象,则可以成功地将这些对象放入数组中。 仅使用.push()方法,数组中的分割索引将存在问题。所以我更喜欢这个例子,它为我提供了适当的解决方案。

答案 2 :(得分:0)

var jsonObject = JSON.parse(string); //以字符串形式获取数据并传递它。

jsonObject将是基于json字符串的项目数组。 现在你可以迭代jsonObject并访问它的欲望项/ propety。

答案 3 :(得分:-1)

您可以尝试使用以下代码来实现所需的dataPoints数组

var dataPoints = [];
for (var prop in data) {
    var arr = [];
    for(key in data[prop]){
        arr.push(data[prop][key]);
    }
    dataPoints.push(arr);
}   
console.log(dataPoints); 

enter image description here