2

私は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 配列の初期化が正しい方法ではない可能性があることを理解しています。

ありがとう。

4

2 に答える 2

1

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
于 2012-11-28T11:01:24.240 に答える
1

あなたがやろうとしていることはあまり意味がありません。既存の有効な 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
于 2012-11-28T11:11:30.667 に答える