【问题标题】:how to change this node js json response如何更改此节点 js json 响应
【发布时间】:2023-04-04 01:12:01
【问题描述】:

我在这里有一个问题,我需要更改 json 响应,但我不知道如何更改它我已经尝试了很多东西但没有成功,我如何获得最近的响应是因为我遵循 youtube 中的教程。我使用 node js 作为语言

{
   "status": 200,
   "values": {
       "Luffy": {
           "id_mahasiswa": 1,
           "nim": 312060003,
           "nama": "Luffy",
           "jurusan": "Bajak Laut",
           "matakuliah": [
                 "Pemrograman Dasar",
                 "Algoritma",
                 "Matematika"
           ],
           "sks": 10
        },
        "Sanji": {
            "id_mahasiswa": 3,
            "nim": 312060012,
            "nama": "Sanji",
            "jurusan": "Koki",
            "matakuliah": "Matematika",
            "sks": 28
       }
   }
}

但我想变成这样

{
   "status": 200,
   "values": [
       {
           "id_mahasiswa": 1,
           "nim": 312060003,
           "nama": "Luffy",
           "jurusan": "Bajak Laut",
           "matakuliah": [
                 "Pemrograman Dasar",
                 "Algoritma",
                 "Matematika"
           ],
           "sks": 10
        },
        {
            "id_mahasiswa": 3,
            "nim": 312060012,
            "nama": "Sanji",
            "jurusan": "Koki",
            "matakuliah": "Matematika",
            "sks": 28
       }
   ]
}

代码

exports.okNested = (values, res) => {
    const hasil = values.reduce((akumulasikan, item) => {
        if(akumulasikan[item.nama]){
            const group = akumulasikan[item.nama]
            if(Array.isArray(group.matakuliah)){
                group.matakuliah.push(item.matakuliah)
            }else{
                group.matakuliah = [group.matakuliah, item.matakuliah]
            }
        }else{
            akumulasikan[item.nama] = item
        }
        return akumulasikan
    }, {})

    const data = {
        "status": 200,
        "values": hasil
    }

     res.json(data);
     res.end()
}

非常感谢那些帮助我的人,英语不好见谅

【问题讨论】:

    标签: node.js json


    【解决方案1】:

    您似乎想要数组,而不是对象。但是,您发布的预期结果仍然显示一个对象。

    {
     values:[]
    }
    

    为此,您需要将返回的对象的值转换为数组。

    result.values = Object.values(result.values)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 2023-03-10
      • 2015-10-25
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多