解析NodeJS中的JSON对象数组

Aph*_*pha 10 javascript arrays json node.js

我想知道如何解析NodeJS中的JSON对象数组?

我想将JSON数组发布到服务器,并能够将接收到的数组用作regualar JavaScript数组.

提前致谢.

这是我使用stringify函数将Array转换为String的前端部分

document.getElementById("sendJson").addEventListener("click", function () {
    $.post("/echo", JSON.stringify(QuestionsArray), function (data) {
        alert(data);
    });
})
Run Code Online (Sandbox Code Playgroud)

这是我的后端部分,我试图将JSON对象的数组转换为数组

app.post('/echo', function (req, res) {
    var Array = JSON.parse(JSON.stringify(req.toString()));
    res.end(Array[0]["QuestionText"].toString());
});
Run Code Online (Sandbox Code Playgroud)

这是我试图发送到服务器的数组:

[  
   {  
      "QuestionText":"What is your Name",
      "QuestionType":1
   },
   {  
      "QuestionText":"Where are you from",
      "QuestionType":2,
      "ChoiceList":[  
         "US",
         "UK"
      ]
   },
   {  
      "QuestionText":"Are you married",
      "QuestionType":3,
      "ChoiceList":[  
         "Yes",
         "No"
      ]
   }
]
Run Code Online (Sandbox Code Playgroud)

这是源代码

Vse*_*nin 8

在你的app.js:

var bodyParser = require("body-parser");
...
app.use(bodyParser.urlencoded({extended: true}));
Run Code Online (Sandbox Code Playgroud)

然后你可以req.body用来获取发布的值:

app.post('/echo', function (req, res) {
    var Array = req.body.data;
    res.end(Array[0]["QuestionText"].toString());
});
Run Code Online (Sandbox Code Playgroud)

在前端,不要做任何字符串化:

$.post("/echo", {data: QuestionsArray}, function (data) {
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)