追加/推送到json对象

时间:2013-08-12 14:35:00

标签: javascript json

我正在尝试创建以下json对象,我想用tshirt名称创建对象,然后在创建它之后附加一个大小列表。

{ tshirt: 'Vintage 80s',
    size: { small: false },
    size: { medium: false },
    size: { large: true }
}

我可以使用这些代码行轻松创建对象

var availability = {};
availability.tshirt = "Vintage 80s";

但是如何将每个尺寸附加到对象?这是一个节点/快递应用程序,所以我需要一个纯粹的JavaScript解决方案。对于json对象有什么类似于数组的吗?

4 个答案:

答案 0 :(得分:4)

对象键是唯一的。您可能希望改用另一个对象:

{ tshirt: 'Vintage 80s',
  size: {
    small: false,
    medium: false,
    large: true
  }
}

然后您可以使用以下内容访问小尺寸:

availability.size.small

答案 1 :(得分:2)

您不能拥有多个具有相同名称的属性(例如size),但您可以将所有大小的对象添加到数组中:

{ 
    tshirt: 'Vintage 80s',
    sizes: [
        { small: false },
        { medium: false },
        { large: true }
    ]
}

注意:这不是JSON,只是一个简单的JavaScript对象文字。 JSON是一种表示和交换数据的字符串表示法。

答案 2 :(得分:1)

您现在有一个具有重复键(大小)的对象。我建议创建另一个属性“sizes”并使用对象添加一个数组,表示大小的键值对。

{ tshirt: 'Vintage 80s',
  sizes: [{ small: false },
     { medium: false },
     { large: true }]
}


var availability = {};
availability.tshirt = "Vintage 80s";
availability.sizes = [{ small: false }, { medium: false }, { large: true }]];

答案 3 :(得分:1)

您可以像设置tshirt

一样设置它
//Create an object of sizes
var sizes = {
    small: false,
    medium: false,
    large: true
}

//Create your availability object.
var availability = {};
availability.tshirt = "Vintage 80s";

//Assign the sizes
availability.sizes = sizes;

//Log the results, change out small for medium or large
console.log(availability.sizes.small);