ノードjsで記述されたサーバーで、このリクエスト時にクライアントに送信されるJSON文字列を作成する必要があります。問題は、このJSONはサーバーで使用可能なデータに依存するため、JSON配列のサイズが常に同じではないことです。私は一日中試してみましたが、私は近くにいるように感じますが、私はまだそれを取得できません。
クエリの例を次に示します。
json={"players":[
{"name":"Messi", "goals":8},
{"name":"Ronaldo", "goals":22},
{"name":"Costa", "goals":20},
{"name":"Neymar", "goals":13},
{"name":"Arabi", "goals":6},
{"name":"Bale", "goals":3},
{"name":"Toquero", "goals":0}]};
次の方法でサーバーに送信します。
res.contentType('application/json');
res.send(json);
私が作成したいJSON配列は、プレーヤー名がキーであり、ゴールの数が値である「ゴール」と呼ばれるハッシュに依存します。したがって、プレーヤーが3人しかない場合、JSON配列のサイズはこのサイズのみにする必要があります。
私はこのようにオンラインでJSON配列を作成しようとしています:
result= "";
for(i in goals){
result = result+ '{ name:' + i + ", goals:" + goals[i] + '},';
}
result= result.substring(0, result.length - 1);
res.contentType('application/json');
res.send( { 'players': [ result]});
ただし、クライアントはサイズ1のJSONのみを受け取ります
Object {jugadores: Array[1]}
jugadores:Array [1] 0: "{nombre:Messi、goles:8}、{nombre:Ronaldo、goles:16}、{nombre:Costa、goles:10}、{nombre:Toquero、goles:0}、{ nombre:Arabi、goles:2}、{nombre:Bale、goles:10}、{nombre:Neymar、goles:8} "長さ:1
事前に感謝します、私はこれで本当に苦労しています:(
編集:私は今、これをやっているとストリングでやってみますが、運はありません。何が間違っていますか?
result= "players:[";
for(i in goals){
result= result+ '{ name:' + i + ", goals:" + goals[i] + '},';
}
result= result.substring(0, resultado.length - 1);
result= result + ']'
res.contentType('application/json');
myJSONstring = JSON.stringify(resultado);
res.send(myJSONstring);
GETを使用して目標ハッシュが入力されます。
app.get('/player/:id', function (req, res) {
res.contentType('application/json');
res.send( {'goals': + goals[req.params.id] } );
});
必要な情報を使用してJavaScriptデータ構造を構築し、最後にjson文字列に変換します。
私があなたがしていると思うことに基づいて、次のようなものを試してください:
var result = [];
for (var name in goals) {
if (goals.hasOwnProperty(name)) {
result.Push({name: name, goals: goals[name]});
}
}
res.contentType('application/json');
res.send(JSON.stringify(result));
またはそれらの線に沿って何か。
JSONがありません。オブジェクト、配列、一部の文字列、一部の数字で構成されるJavaScriptデータ構造があります。
JSON.stringify(object)
を使用して、JSONテキスト(の文字列)に変換します。
これは私を助けました、
res.format({
json:function(){
var responseData = {};
responseData['status'] = 200;
responseData['outputPath'] = outputDirectoryPath;
responseData['sourcePath'] = url;
responseData['message'] = 'Scraping of requested resource initiated.';
responseData['logfile'] = logFileName;
res.json(JSON.stringify(responseData));
}
});