2

まあ、私はとても混乱しています。私はこのようなjson要素を作成しました:

var world = {"county": []};
world.county.push({name: "America", flag: "yes", countries: []});
world.county[0].countries.push({name: "Costa Rica", capital: "San Jose"});

これは私に2つのことを考えるように導きます:

  1. 配列とjsonオブジェクトを混在させています。このシナリオでアレイの使用を回避するにはどうすればよいですか?
  2. jsonルートに動的に要素を追加するにはどうすればよいですか?

質問2に関しては、ルートに要素を追加する方法がわからないために問題が発生しています。これを試したとしましょう。ただし、機能しません。

var index = 0;
var word = {};
world.index.push({name: WA});

したがって、この方法で、以前に作成した配列を反復する要素を追加できます。

4

2 に答える 2

5

まず、これを整理しましょう: JavaScript オブジェクトを表す文字列の場合は、JSON のみです。あなたが持っているのはオブジェクトリテラルです。

さて、あなたの質問に関しては、次を使用するだけでオブジェクトに要素を追加できます。

object.newProperty = value;

配列を避けたい場合は、配列を使用してください。これらは使用する正しいタイプのオブジェクトであり、そのタスクには他のものを使用しないでください。

于 2012-07-09T04:24:01.220 に答える
0

コリンクの答えから始めましょう。次に、ここで行っていることについて:

var index = 0;
var world = {};
world.index.push({name: "WA"});

worldインデックス 0のプロパティを に追加しようとして.push()いるようです。それを使用しようとすると、そのプロパティを配列にしたいように思われます。その場合は、次のようにします。

world[index] = [];
world[index].push({name: "WA"});

この構造をworld作成する空のオブジェクトとして開始したとします。

{ "0" : [ {name:"WA"} ] }

一般的に、プロパティが変数内にあるオブジェクト プロパティにアクセスするには、[]配列スタイルの構文を使用します。そう:

world["somePropName"]
// does the same thing as
world.somePropName
// so with a variable:
var x = "somePropName";
world[x]
于 2012-07-09T04:35:20.447 に答える