-1

eつまり、データベースからフェッチしてjson_encode()を使用してJSONに解析した解析済みのphpデータを取得しました。次に、JSONparse()を使用して配列のオブジェクトを作成しました。私のコードは次のようになります。

$.get("fetchDatabase.php", function(data){
var parsedData = jQuery.parseJSON(data); }

parsedData 次のような配列が残って います。

[

{"person0":{"name":["Erik Steen"],"age":["1"]}},
{"person1":{"name":["Frida Larsson"],"age":["1"]}},
{"person2":{"name":["Abdi Sabrie"],"age":["2"]}},
{"person3":{"name":["Achraf Malak"],"age":["3"]}},
{"person4":{"name":["Adam Anclair"],"age":["1"]}}

]

これらの配列をという名前の配列に配置しました

var peopleArray= { people: [ parsedData ] };

ここまでは順調ですね。今私が欲しいのは、特定の人の属性にアクセスできることです。名前や年齢のように。これらの属性をターゲットにするにはどうすればよいですか?私は運が悪かったのでそれらの属性を印刷しようとしました。私は試した:

alert (peopleArray.people[0].person1.name);

どちらが返されますか:

Uncaught TypeError: Cannot read property 'name' of undefined

これらの属性にアクセスするにはどうすればよいですか?

4

1 に答える 1

3

タイプミス( "")とは別にnamn、問題は配列を配列内に配置していることです。

var peopleArray = { people: [ parsedData ] };

parsedDataは配列なので、最終的には次のような構造になります。

// peopleArray
{ people :  [ [  { "person0" : ... }, ...  ] ]  }
//  oops -----^

問題がわかりますか?はすでに配列なのでparsedData、正しいコードは次のようになります。

var peopleArray = { people: parsedData };
于 2012-04-05T18:39:00.283 に答える