如何将对象数组放入新的Json对象
How to put array of objects into new Json object
我的页面上有几个下拉列表。基于这些下拉菜单的选择,我想构建如下所示的Json对象:
{"list":{"city":["1","2","3"],"businessName":["City1","AnotherCity"]}}
下拉列表事件:
$(".chosen-select").each(function () {
$id = this.id;
$value = $(this).val();
});
当然,我希望这是尽可能通用的,因此我得到$id(在我的情况下是"城市"answers"企业名称",但它可能是不同的在另一个页面。
$value = $(this).val();
当然是选定值的数组,例如:"["1","2","3"];
我已经试过了,但这不是我想要的
var jsonObj = {
list: []
};
$(".chosen-select").each(function () {
$id = this.id;
$value = $(this).val();
var obj = {};
obj[$id] = $value;
jsonObj.list.push(obj);
});
的结果是:
{"list":[{"city":["2","3"]},{"businessName":["KrakVenue1","KrakVenue3"]}]}
and NOT what I want.
我该怎么做?由于
由于您希望列表是一个对象,所以不要将其创建为数组。
var jsonObj = {
list: {}
};
$(".chosen-select").each(function () {
var id = this.id,
value = $(this).val();
jsonObj.list[id] = value;
});
在http://jsfiddle.net/gaby/4f43Q/演示
jsonObj.list
应该是你想要的对象,而不是一个数组,所以你不应该push到它。
if (!jsonObj.list.hasOwnProperty(id)) {
jsonObj.list[id] = value;
}
else {
// key already exists. What should you do with it?
// if `value` is another array, you can use `.concat`
}
看起来value
应该是一个数组,但它们是单独的值,你想把它们当作一个数组,使用:
if (!jsonObj.list.hasOwnProperty(id)) {
jsonObj.list[id] = [];
}
jsonObj.list[id].push(value);
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)