[英]Convert json data to javascript array - in multi-dimensional sense
我有一個 json 數組說
{
"People": {
"Person": [
{"FirstName": "John", "LastName": "Smith"}
{"FirstName": "Joe", "LastName": "Bloggs"}
{"FirstName": "Wendy", "LastName": "Deng"}
]
}
}
我想把它轉換成一個javascript
數組(像這樣)
var persons = [ ["FirstName", "John", "LastName", "Smith"], ["FirstName", "Joe", "LastName", "Bloggs"], ["FirstName", "Wendy", "LastName": "Deng"] ];
我該如何實現? 希望我的問題有意義,我意識到 javascript 數組初始化可能不是正確的放置方式。
謝謝。
jsfiddle 演示:這里
var src={
"People": {
"Person": [
{"FirstName": "John", "LastName": "Smith"},
{"FirstName": "Joe", "LastName": "Bloggs"},
{"FirstName": "Wendy", "LastName": "Deng"}
]
}
};
var persons=[];
var obj=src["People"]["Person"];
for(i in obj){
var temp=[];
temp.push("FirstName");
temp.push(obj[i].FirstName);
temp.push("LastName");
temp.push(obj[i].LastName);
persons.push(temp);
}
// persons contain your requried array
你試圖做的事情沒有多大意義。 將現有的有效 JSON 對象轉換為您指定的數組格式是毫無意義的,並且會使訪問元素變得困難。
聽起來你真正想做的是:
var data = JSON.parse(jsonString); // Your JSON, parsed into a JS object.
var persons = []
data.people.person.foEach( function(el) {
person.push(el.FirstName + " " + el.LastName);
}
現在persons
看起來像這樣:
["John Smith", "Joe Bloggs", "Wendy Deng"]
你確定你知道 JSON 和 JavaScript 對象是如何工作的嗎?
var myJSON = '{ "foo": { "bar": { "baz" : [1,2,3] } } }' // JSON, String type.
var myObj = JSON.parse(myJSON); // Now a JS Object type.
var innerArray = myObj.foo.bar.baz;
現在變量innerArray
的值是[1,2,3]
,一個Array
類型。
console.log(innerArray[0]); // Log the first element.
> 1 // First element is 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.