JSFiddle提供错误的完全重复:JSFiddle
我正在尝试"步骤"通过多维数组。每次我尝试加载$ .parseJSON()时都会抛出错误。我已经花了几个小时与谷歌博士寻找答案或提示。所以,如果有人回答,请保持温和。
我试图通过的JSON数组是由AJAX函数发布的数据的json_encode()创建的。
{
"propertyType": "{"
propertyType1 ":"
Apartment Style Flat ","
propertyType2 ":"
Loft Style "}",
"houseAge": "",
"living_area": ""
}
在发布之前发送给PHP的AJAX数据: console.log(vals.advanced)生成
Object {
propertyType: "{"
propertyType1 ":"
Apartment Style Flat ","
propertyType2 ":"
Loft Style "}",
houseAge: "",
living_area: ""
}
修改 使用以下代码创建数据数组:
var checkboxes = [
'propertyType'
];
// gather all checked check boxes and store in json array format for submission
$.each(
checkboxes,
function (i, e) {
if(i==0) i=1;
var found = false;
$("input[name=" + e + "]:checked").each(
function () {
id = this.name;
arrCB[id + i++] = (this.value);
found = true;
}
);
if (found) {
advanced[id] = JSON.stringify(arrCB);
i = 1;
arrCB = {}; // zero out holders
}
}
);
advanced['houseAge'] = $('#houseAge').val();
advanced['living_area'] = $('#living_area').val();
//advanced['lotsize'] = '';
// store data in array to post to server
vals = {
advanced: advanced
};
$.post(
"<?php echo $this->url->get('/ajax/session/update');?>",
{values: vals}
);
会话文件数据由:
创建$this->session->set('advancedSearchCriteria', json_encode($values['advanced']));
因此,虽然我从评论中理解了&#34;数组&#34;如上所示&#34; NOT JSON&#34;我只能问,&#34;那是怎么回事?&#34;上面的代码有什么问题?
感谢您的想法。
ANSWER 在下面的评论中,其他人表示这不是有效的JSON。如上面的示例所示,它是由jQuery创建的JSON,无论是否有效。
根据Barmar的评论,我发现上面使用的stringify命令不在适当的位置。更新后的代码如下并且有效。
if (found) {
advanced[id] = arrCB; //JSON.stringify(arrCB);
i = 1;
arrCB = {}; // zero out holders
}
并在vals数组中:
vals = {
advanced: JSON.stringify(advanced)
};
希望这会帮助别人。