簡體   English   中英

將 json 數據轉換為 javascript 數組 - 在多維意義上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM