我必须在这里遗漏一些东西,但是下面的代码(Fiddle)返回一个空字符串:
var test = new Array();
test['a'] = 'test';
test['b'] = 'test b';
var json = JSON.stringify(test);
alert(json);
Run Code Online (Sandbox Code Playgroud)
JSON这个阵列的正确方法是什么?
所以我正在创建一个包含元素信息的数组.我遍历所有元素并保存索引.出于某种原因,我无法将此数组转换为json对象!
这是我的数组循环:
var display = Array();
$('.thread_child').each(function(index, value){
display[index]="none";
if($(this).is(":visible")){
display[index]="block";
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式将其转换为JSON对象:
data = JSON.stringify(display);
Run Code Online (Sandbox Code Playgroud)
它似乎没有发送正确的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"};
Run Code Online (Sandbox Code Playgroud)
当我对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 );
}
});
Run Code Online (Sandbox Code Playgroud)
使用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, …Run Code Online (Sandbox Code Playgroud) 我有如下情况:
我有一个id选择页面,用户可以从页面上显示的ID中选择id.当用户选择id时,我将它们存储为隐藏输入字段中的逗号分隔值.
<input type="hidden" values="234,678,987" />
Run Code Online (Sandbox Code Playgroud)
我有一个按钮,在单击时会弹出一个对话框,然后显示所选的ID.这里显示的ID来自隐藏字段.现在我需要存储产品ID和名称.所以在这种情况下我应该怎么做因为现在我无法在隐藏的输入字段中保存这个数据结构.即使我使用javascript数组,如何保存该数组并将其用于将来进行显示.是否可以将数组对象保存在隐藏的输入字段中....并稍后将其作为数组对象检索...?
我一直在为一些可能微不足道的事情而浪费时间:
我有一个逗号分隔的电子邮件地址列表,我想将其转换为特定的JSON格式,以便与Mandrill API一起使用(https://mandrillapp.com/api/docs/messages.JSON.html)
我的字符串:
var to = 'bigbadwolf@grannysplace.com,hungry@hippos.com,youtalkin@to.me';
Run Code Online (Sandbox Code Playgroud)
我认为它需要是什么:
[
{"email": "bigbadwolf@grannysplace.com"},
{"email": "hungry@hippos.com"},
{"email": "youtalkin@to.me"}
]
Run Code Online (Sandbox Code Playgroud)
我有一个JSFiddle我几乎拥有它我想:http: //jsfiddle.net/5j8Z7/1/
我一直在研究几个jQuery插件,其中包括:http://code.google.com/p/jquery-json 但我不断收到语法错误.
关于SO的另一篇文章建议手工完成:JavaScript关联数组到JSON
这可能是一个微不足道的问题,但Mandrill API的Codecadamy文档已经停止了一段时间,并且没有可用的例子.
我以为我非常认识JavaScript,直到我遇到其他开发人员的代码让我失望:
var data = [];
Run Code Online (Sandbox Code Playgroud)
正如你可以看到它的名字,它应该被用作一个关联数组(即Object),但它是一个Array.然后他将值赋给该数组的键:
data['somekey'] = 'somevalue';
Run Code Online (Sandbox Code Playgroud)
我认为这在JavaScript中是不可能的,我认为它会引发异常,但它有效.它为什么有效?那么为什么我们需要对象,如果我们可以使用数组呢?它被认为是一种不好的做法,我应该羞辱那个开发者吗?
我读过那个数组可以是map,所以为什么它会给出错误的结果呢?是否有简单的本机方式在JavaScript中使用map然后获取它的长度?
var f = [];
f["1_f_1"] = "1";
f["2_f_2"] = "2";
f["3_f_3"] = "3";
alert(f.length);
Run Code Online (Sandbox Code Playgroud)
印刷品: 0