更新3:
以下似乎没有任何区别,与更新2中的脚本完全相同:
var $obj = jQuery.parseJSON(results);
$.each($obj, function(key, value) {
alert(key + " - " + value);
});
更新2:
$.each(jQuery.parseJSON(results), function(key, value) {
alert(key + " - " + value);
});
上面的脚本现在返回当前的警报数,但不返回正确的数据。它给了我这个:
0 - [object, Object]
1 - [object, Object]
2 - [object, Object]
更新1:
get_json.aspx
目前正在返回此内容:
[{"key":1,"value":"Default"},{"key":2,"value":"Reports"},{"key":3,"value":"Other"}]
现在的脚本现在看起来像这样:
$.ajax({
url: 'get_json.aspx',
type: 'GET',
error: function(xhr, status, error) {
alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
},
success: function(results) {
$.each(results, function(key, value) {
alert(key + " - " + value);
});
}
});
但是当我访问这个网页时,它只是给了我一个永无止境的javascript警报,即。
0 - undefined
1 - undefined
2 - undefined
3 - undefined
...
75 - undefined
76 - undefined
77 - undefined
78 - undefined
原始问题:
如果我从服务器返回key:value配对的JSON。我该如何使用那个JSON?
我正在尝试在下面的ajax / jquery的成功部分中使用JSON:
$.ajax({
url: 'get_json.aspx',
type: 'GET',
error: function(xhr, status, error) {
alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
},
success: function(results) {
/*
using the key:value pair json return, if 3 pairs are return, somehow generate the following
where key = the value of the querystring in the url, i.e. tab = 1,2,3
and value = Default, Reports, Other
$("#tabs").tabs("add","tabs.aspx?tab=1","Default")
$("#tabs").tabs("add","tabs.aspx?tab=2","Reports")
$("#tabs").tabs("add","tabs.aspx?tab=3","Other")
*/
}
});
答案 0 :(得分:2)
你可能想要这样的东西:
<击> $ .each(结果,函数(键,值){ $(“#tabs”)。tabs(“add”,“tabs.aspx?tab =”+ key,value) }); 击>
$.each(results, function(i) {
$("#tabs").tabs("add","tabs.aspx?tab=" + results[i].key, results[i].value)
});
如果响应的内容类型是“text / json”,那么您不需要使用parseJson(),因为JQuery会为您执行此操作。
答案 1 :(得分:1)
答案 2 :(得分:0)
当你正确地 形成json时(你可以在这里验证它是否正确形成Json Parser Online)。您可以使用javascript提供的eval()函数。即
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
要使用返回的文本字符串...请执行以下操作:
var myObject = eval('(' + myJSONtext + ')');
如果您坚持使用jquery解析选项,请使用:
var obj = jQuery.parseJSON( myJsontext );
此信息位于JSON in JavaScript