所以我有一个看起来像这样的json字符串
var jsonString = '[{"name":"John Smith","uid":1234,{"name":"Susie Something","uid":4567"}]';
我正在创建一个函数,它将返回所有用逗号分隔的UID。例如: 1234,4567。
我现在做的是这个
function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);
$.each(friends, function() {
uids = uids + this.uid.toString() + ',';
});
reuturn uids;
}
然而,没有任何回报。如何在jquery线程之外访问由jquery线程创建的变量。
答案 0 :(得分:1)
通过解析而不是朋友,如果这是完整的代码并且朋友没有在任何地方定义
function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);
$.each(parsed, function() {
uids = uids + this.uid.toString() + ',';
});
reuturn uids;
}
答案 1 :(得分:1)
尝试:
function getUIDS(json){
var uids = [];
var friends = JSON.parse(json);
$.each(friends, function(i) {
uids.push(friends[i].uid);
});
return uids.join(',');
}
您的代码中的问题是:(请参阅代码注释)
function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);
$.each(friends, function() { // using friends instead of parsed
uids = uids + this.uid.toString() + ','; // using this here
});
reuturn uids; // spelling mistake for return keyword
}
答案 2 :(得分:1)
尝试修复你的json:
var jsonString = '[{"name":"John Smith","uid":1234},{"name":"Susie Something","uid":4567"}]';
稍微改变你的代码:
function getUIDS(json) {
var uids = '',
friends = JSON.parse(json);
$.each(friends, function() {
uids += this.uid + ',';
});
return uids;
}
重要的部分正在循环friends
并正确拼写return
。
您还应该考虑按照某人的建议使用join
。这样可以确保你的uids
字符串末尾没有“,”(除非那是你想要的)。