在节点js中创建JSON数组

 手机用户2502855061 发布于 2023-02-12 10:13

我需要在我的服务器中用节点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

在此先感谢,我真的很挣钱:(

编辑:我现在尝试使用stringy做这个,但没有运气.我做错了什么?

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] } );

});

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有