I am wondering how can I parse Array of JSON objects in NodeJS?
I want to post JSON array to the server, and be able to use the received array as a regualar JavaScript array.
Thanks in advance.
This is my front-end part that I am converting Array to String using stringify function
document.getElementById("sendJson").addEventListener("click", function () { $.post("/echo", JSON.stringify(QuestionsArray), function (data) { alert(data); }); })
This my back-end part that I am trying to convert Array of JSON object to Array
app.post('/echo', function (req, res) { var Array = JSON.parse(JSON.stringify(req.toString())); res.end(Array[0]["QuestionText"].toString()); });
This is Array that I am trying to sent to the server:
[ { "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" ] } ]
Answer
In your app.js
:
var bodyParser = require("body-parser"); ... app.use(bodyParser.urlencoded({extended: true}));
Then you can just use req.body
to get the posted values:
app.post('/echo', function (req, res) { var Array = req.body.data; res.end(Array[0]["QuestionText"].toString()); });
In front-end, don’t do any stringifying:
$.post("/echo", {data: QuestionsArray}, function (data) { alert(data); });