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