2

だから私はこのように見える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 スレッドによって作成された変数にアクセスするにはどうすればよいですか。

4

3 に答える 3

1

これが完全なコードで、フレンドがどこにも定義されていない場合は、フレンドの代わりに解析されたパス

function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);

$.each(parsed, function() {
        uids = uids + this.uid.toString() + ',';
 });
 reuturn uids;

}
于 2012-06-27T07:38:08.397 に答える
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

}
于 2012-06-27T07:38:49.163 に答える
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(それが必要な場合を除きます)。

于 2012-06-27T07:40:37.413 に答える