使用动态值创建json对象

时间:2018-07-09 07:12:49

标签: jquery json

我正在尝试使用复选框列表的值创建一个JSON对象。

对象的关键属性应该是复选框ID,我是这样得到的。

var elementId = $(this).attr("id");

这是我完整的代码。

var ImportParameters = [];
        $('#divImportOptions .ace').each(function (index, obj) {
            debugger;
            var elementId = $(this).attr("id");
            var elementValue = $(this).is(':checked');
            ImportParameters.push({ elementId : elementValue });                
        });

我当前的输出是这样的。

{elementId: true}

我的必填输出是这样的

{ chkAllowDetailsInfo : true}

我应该怎么做才能获得所需的输出?

1 个答案:

答案 0 :(得分:2)

您可以使用map()从jQuery对象集合中创建一个数组。要将变量用作对象的键,请用大括号[]将其括起来:

var importParameters = $('#divImportOptions .ace').map(function() {
  return { [this.id]: this.checked };                
}).get();

console.log(importParameters);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divImportOptions">
  <input type="checkbox" id="foo" class="ace" value="A" checked="true" />
  <input type="checkbox" id="bar" class="ace" value="B" />
  <input type="checkbox" id="fizz" class="ace" value="C" checked= "true" />
  <input type="checkbox" id="buzz" class="ace" value="D" />
</div>