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 回答