首页 > 解决方案 > 如何在 Node Js JSON 输出中为每个对象设置标题?

问题描述

当我从数据库中获取数据并将结果作为 JSON 发送时,我的 JSON 输出包含没有任何名称的对象。我想为每个对象设置一个名称,以便在 android 中解析 JSON。我怎样才能做到这一点???或者如何在没有对象名称的情况下在 android 中使用 Retrofit 解析这个?

我的 JSON 文件

[
    [
        {
            "Title": "title 1",
            "Id": 1,
            "RoomsExams": 93
        },
        {
            "Title": "title 2",
            "Id": 13,
            "RoomsExams": 93
        },
        {
            "Title": ""title 3",
            "Id": 14,
            "RoomsExams": 93
        }
    ],
    [
        {
            "Ok": false,
            "Questions": 1,
            "Title": "answer 1",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 1,
            "Title": ""answer 2",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 1,
            "Title": ""answer 3",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 1,
            "Title": ""answer 4",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 13,
            "Title": ""answer 5",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 6",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 7",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 8",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 9",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 10",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 11",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 14,
            "Title": ""answer 12",
            "RoomsExams": 93
        }
    ]
]

这就是我想要的

[
    "questions": [
        {
            "Title": "title 1",
            "Id": 1,
            "RoomsExams": 93
        },
        {
            "Title": "title 2",
            "Id": 13,
            "RoomsExams": 93
        },
        {
            "Title": ""title 3",
            "Id": 14,
            "RoomsExams": 93
        }
    ],
  "answers": [
        {
            "Ok": false,
            "Questions": 1,
            "Title": "answer 1",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 1,
            "Title": ""answer 2",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 1,
            "Title": ""answer 3",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 1,
            "Title": ""answer 4",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 13,
            "Title": ""answer 5",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 6",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 7",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 8",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 9",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 10",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 11",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 14,
            "Title": ""answer 12",
            "RoomsExams": 93
        }
    ]
]

和我用于获取的节点 js 代码

router.get('/getquestion/:roomid/:subject/:count',async(req,resp,next)=>{
    (async function(){
        let pool = null;
        try{
            pool = await connection
            let result = await pool.request()
            .input('i_roomid',sql.BigInt,req.params.roomid)
            .input('i_subject',sql.BigInt,req.params.subject)
            .input('i_count',sql.Int,req.params.count)
            .query(`exec questproc @i_roomid,@i_subject,@i_count`)
            if(result){
                resp.status(200).send(result.recordsets).end;
            }
        }catch(err){
            console.log("Failed")
                resp.status(500).send(err).end;
        }

    })()
},closePoolMiddleware)

标签: node.jsjsonretrofit2

解决方案


不要将数组存储在 json 文件中,而是存储一个对象。
拥有属性名称,您的 json 文件应如下所示

{
    "questions": [
        {
            "Title": "title 1",
            "Id": 1,
            "RoomsExams": 93
        },
        {
            "Title": "title 2",
            "Id": 13,
            "RoomsExams": 93
        },
        {
            "Title": ""title 3",
            "Id": 14,
            "RoomsExams": 93
        }
    ],
    "answers":[
        {
            "Ok": false,
            "Questions": 1,
            "Title": "answer 1",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 1,
            "Title": ""answer 2",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 1,
            "Title": ""answer 3",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 1,
            "Title": ""answer 4",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 13,
            "Title": ""answer 5",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 6",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 7",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 13,
            "Title": ""answer 8",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 9",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 10",
            "RoomsExams": 93
        },
        {
            "Ok": false,
            "Questions": 14,
            "Title": ""answer 11",
            "RoomsExams": 93
        },
        {
            "Ok": true,
            "Questions": 14,
            "Title": ""answer 12",
            "RoomsExams": 93
        }
    ]
}

推荐阅读