我有一个这样的输入表单:
<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"
}
}
}
是否有一种简单的方法可以完成此操作,或者我需要对结果进行硬编码?
答案 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。