【发布时间】:2013-11-27 00:42:23
【问题描述】:
所以我正在创建一个包含元素信息的数组。我遍历所有元素并保存索引。由于某种原因,我无法将此数组转换为 json 对象!
这是我的数组循环:
var display = Array();
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
我尝试通过以下方式将其转换为 JSON 对象:
data = JSON.stringify(display);
它似乎没有发送正确的 JSON 格式!
如果我这样编写代码,它可以工作并发送信息:
data = {"0":"none","1":"block","2":"none","3":"block","4":"block","5":"block","6":"block","7":"block","8":"block","9":"block","10":"block","11":"block","12":"block","13":"block","14":"block","15":"block","16":"block","17":"block","18":"block","19":"block"};
当我对 JSON.stringify 对象发出警报时,它看起来与手动编码的对象相同。但它不起作用。
我要疯了才想解决这个问题!我在这里想念什么?发送此信息以获取手动编码格式的最佳方式是什么?
我正在使用这个ajax方法发送数据:
$.ajax({
dataType: "json",
data:data,
url: "myfile.php",
cache: false,
method: 'GET',
success: function(rsp) {
alert(JSON.stringify(rsp));
var Content = rsp;
var Template = render('tsk_lst');
var HTML = Template({ Content : Content });
$( "#task_lists" ).html( HTML );
}
});
使用 GET 方法,因为我正在显示信息(不更新或插入)。只向我的 php 文件发送显示信息。
结束解决方案
var display = {};
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
$.ajax({
dataType: "json",
data: display,
url: "myfile.php",
cache: false,
method: 'GET',
success: function(rsp) {
alert(JSON.stringify(rsp));
var Content = rsp;
var Template = render('tsk_lst');
var HTML = Template({ Content : Content });
$( "#task_lists" ).html( HTML );
}
});
【问题讨论】:
-
你的意思是使用
JSON.parse? -
Console.log 您的数据变量。数据 = JSON.stringify(显示);控制台.log(数据);看看你得到了什么。
-
干脆不转换数据。
-
["block","block","block","block","block","block","block","block","block","block"," block","block","block","block","block","block","block","block","block","block"] 它缺少数字.. "0":"块","1":"块"...
标签: javascript arrays json stringify