3

ノード (高速) アプリで、json 応答をクライアントに送り返したいと考えています。このようになります。

{"someTshirt": 
      {small : 'available'},
      {med : 'available'},
      {large : 'not available'}
 }

サイズについて繰り返し説明し、応答セットにその可用性を追加します。app.js 内のプレーンな JavaScript でこのオブジェクトを作成するにはどうすればよいですか? このオブジェクトの先頭に「someTshirtName」を追加し、オブジェクトの作成後に各サイズの可用性を追加するにはどうすればよいですか?

4

2 に答える 2

7

次のようにオブジェクトを構築できます。

var availability = {"someTshirt": 
    {
        'small': 'available',
        'med' : 'available',
        'large' : 'not available'
    }
};

次に、次の方法でこのオブジェクトにアクセスできます。

availability.someTshirt.small
>>> 'available'
availability.someTshirt.large
>>> 'not available'

ただし、操作が簡単な文字列の代わりにブール値を使用することをお勧めします。表示文字列は後で変更できます。

var availability = {"someTshirt": 
    {
        'small': true,
        'med' : true,
        'large' : false
    }
};

if (availability.someTshirt.small) {
    console.log('available');
}
>>> 'available'

[編集] コメントへの応答:

オブジェクトを動的に作成する場合は、次の操作を実行できます。

var availability = {};
availability.someTshirt = {};
availability.someTshirt.small = true;
availability.someTshirt.med = true;
availability.someTshirt.large = false;

if (availability.someTshirt.small) {
    console.log("available");
} else {
    console.log("not available");
}
>>> 'available'

availability.someTshirt.small = false;

if (availability.someTshirt.small) {
    console.log("available");
} else {
    console.log("not available");
}
>>> 'not available'
于 2013-08-12T02:55:24.623 に答える
1

コードに返された JSON 文字列に基づいてオブジェクトを構築する必要がある場合は、evalステートメントを使用できます。たとえばsJsonResult、JSON 応答を含む文字列変数があるとします。コードは次のようになります。

var sJsonResult = "{someTshirt: {small : 'available', med : 'available',large : 'not available'}}";

var o;

eval("o = " + sJsonResult);

alert(o.someTshirt.small);
于 2013-08-12T03:16:30.297 に答える