5

バックエンドjsからクライアント側に配列を送信する際に問題が発生しました。

サーバー側で次のことを試しました。

for (var i=0; i < clients.length; i++) {
    clients[i].send(clients);
}

for (var i=0; i < clients.length; i++) {
    clients[i].send(JSON.stringify(clients));
}
  • クライアント側でもjson.stringifyを使用します

for (var i=0; i < clients.length; i++) {
    clients[i].send(clients.join('\n')));
}
  • 繰り返しますが、私はクライアント側でもこの方法を試しました。

残念ながら、上記のソリューションはいずれも機能しませんでした。JSON.stringifyはブラウザメソッドであるため、サーバーサイドでは明らかに機能しませんでしたが、他のメソッドは[object Object]または"[object Object]"

配列clientsをクライアント側に送信するにはどうすればよいですか、または配列をJSONにエンコードしてから送信し、クライアント側で解析できる場合でも。

本当に必要なのはコンテンツをクライアント側に送ることだけですが、どうすればいいのかわかりません。

どんなアイデアでも大歓迎です:)

4

2 に答える 2

7

Nodejsを使用している場合、JSONオブジェクトはデフォルトで使用可能です(V8に組み込まれているため、Nodejsは無料で取得します)。

JSON.stringify()メソッドの逆はJSON.parse()です。

例えば:

> s = JSON.stringify([1,2,3]);
'[1,2,3]'
> a = JSON.parse(s);
[ 1, 2, 3 ]

サーバーがstringifyの結果を送信している場合、クライアントは元のデータを抽出するために解析を実行する必要があり、その逆も同様です。

于 2012-05-21T14:42:27.693 に答える
1

これは実際の解決策ではありませんが、より良い方法を見つけない限り、今のところはうまくいっています。

メソッドの使用.toString()

    for (var i=0; i < clients.length; i++) {
      clients[i].send(clients.toString());
    }

次に、これを使用してクライアント側でその出力を解釈します

var clients = string.split(',');

于 2012-05-20T07:28:34.563 に答える