gpt4 book ai didi

json - 客户端生成的 JSON 存储在 MongoDB 服务器端,application/json 无法正确解析?

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:18 25 4
gpt4 key购买 nike

我会简短地说;我有一个client-side form允许创建“测验”,即一系列附有答案的问题,发送到服务器以存储到 MongoDB。我尝试按照 W3's specs 执行此操作,但 promise 的结果与我得到的结果不符。

我希望我的 JSON 由嵌套对象组成,如下所示:

{
"_id": "54a884c68999af900fc28dcb",
"name": "testquiz",
"author": "user",
"questions": [
{
"text": "question one",
"answers": [
{
"text": "answer one",
"correct": false
},
{
"text": "answer two",
"correct": true
}
]
},
{
"text": "question two",
"answers": [
{
"text": "answer one",
"correct": true
},
{
"text": "answer two",
"correct": false
}
]
}
]
}

但是,我只能得到这样的结果:

 {
"_id": "54a8b00108039068102f8835",
"quizname": "World War II",
"questions[0][text]": "When did WWII start?",
"questions[0][answers][0][text]": "1938",
"questions[0][answers][1][iscorrect]": "on",
"questions[0][answers][1][text]": "1939",
"questions[0][answers][2][text]": "1944",
"questions[0][answers][3][text]": "1914",
"questions[1][text]": "",
"questions[1][answers][0][text]": "",
"questions[1][answers][1][text]": "",
"author": "user"
}

我做错了什么?我是 MEAN 堆栈的新手,非常感谢任何帮助。

最佳答案

我明白了。我花费了令人尴尬的时间和令人痛苦的搜索量,但它确实有效。

    $('#savequiz').click(function () {
obj = {
quizname: $('#quizname').val(),
author: "",
questions: []
};

for (var i = 0; i < questionCount; i++) {
obj.questions.push({
text: $('#question_' + i).val(),
answers: []
});

for (var j = 0; j < answerCount[i]; j++) {
obj.questions[i].answers.push({
text: $('#question_' + i + '_answer_' + j + ' > div > input').val(),
correct: $('#question_' + i + '_answer_' + j + ' > div > span > input[type="checkbox"]').is(':checked')
});
}
}

$.ajax({
url: '/quiz/new',
type: "POST",
data: JSON.stringify(obj),
processData: false,
contentType: "application/json; charset=UTF-8"
});

return false;
});

我相信解决方案本身就体现在 $.ajax 调用参数 'processData: false'这仍然没有回答我的好奇心,为什么 W3 的表单提交规范与 application/json 不符合规范,但至少我让它工作,并且发布了这个,希望它'如果其他人遇到同样的问题,将会提供帮助。我已经有一段时间没有遇到过看似简单但事实证明如此耗时的事情了。

如果有任何相关性或兴趣,这就是我处理请求的方式:

app.post('/quiz/new', function (req, res, next) {
if (!req.session.loggedin) {
res.status(401).end();
return;
}

var quiz = req.body;
quiz.author = req.session.username;

db.collection('quiz', function (err, collection) {
collection.insert(quiz, {safe: true}, function (err, result) {
if (err) {
console.log('Failed to persist quiz!');
res.send({'error': 'An error has occurred'});
return;
}

console.log("Successfully persisted quiz.");
res.redirect('/');
});
});

关于json - 客户端生成的 JSON 存储在 MongoDB 服务器端,application/json 无法正确解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27762239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com