JS的JSON结果格式

时间:2019-10-29 20:57:58

标签: javascript json

我有一个这样的输入表单:

 <div class="form-group">
            <label class="text-info">name</label>
            <input type="text" id="name" class="form-control" />
 </div>

和下面的基本脚本:

$(document).ready(function () {
        $("#postform").submit(function (e) {
            e.preventDefault();
            var data = {
                name: $("#name").val().trim(),
                requestID: $("#requestID").val().trim(),
                label: $("#label").val().trim(),
                contractTypeID: $("#contractTypeID").val().trim(),
                contractID: $("#contractID").val().trim(),                
            }
            console.log('{"ABC":' + JSON.stringify(data) + '}')
               ....

        })
    })

具有以下内容的结果JSON:

{
    "name": "Demo",
    "REQID": "1234aa",
    "label": "123",
    "contractTypeID": "321",
    "contractID": "1234",
}

但是,我需要将结果的格式设置为:

{
   "ABC":{
      "name":"Demo",
      "REQID":"1234aa",
      "Group":{
         "label":"123",
         "contractTypeID":"321",
         "contractID":"1234"
      }
   }
}

是否有一种简单的方法可以完成此操作,或者我需要对结果进行硬编码?

3 个答案:

答案 0 :(得分:1)

如果按照示例使用任意键"ABC",则可以将data结构包装到该预定义的父对象中:

var data = {
  "name": "Demo",
  "REQID": "1234aa",
  "label": "123",
  "contractTypeID": "321",
  "contractID": "1234",
};

var modifiedData = {

  "ABC": {
    "name": data.name,
    "REQID": data.REQID,
    "Group": {
      "label": data.label,
      "contractTypeID": data.contractTypeID,
      "contractID": data.contractID
    }
  }

};

console.log(modifiedData);

答案 1 :(得分:1)

尝试

var data = { 
  ABC: {
    name: $("#name").val().trim(),
    REQID: $("#requestID").val().trim(),
    Group: {
      label: $("#label").val().trim(),
      contractTypeID: $("#contractTypeID").val().trim(),
      contractID: $("#contractID").val().trim(),                
    }
  }
}

console.log(JSON.stringify(data))

答案 2 :(得分:1)

有几种方法可以做到这一点。另一种方法是按如下步骤构建您的javascript对象:

$q_t1s = Model::where('reg_day', $date)->where('cmd_json', 'like', '%"tax": 1%')->get();
$sumT1 = 0;
foreach ($q_t1s as $q_t1):
    $t1s = $q_t1->cmd_json;
    foreach ($t1s as $t1):
        $sumT1 += ($t1['qty'] * $t1['price']);
    endforeach;
endforeach;
dd($sumT1);

请记住,javascript对象不像javascript数组那样支持 order ,因此它不会看起来确切地指定了它,但是会产生您指定的对象

这里是working fiddle