オブジェクトにブール値を持つノードサーバーにhttpリクエストを送信しようとしています。ブーリアンの代わりにノードを受け取るNodejs
私はノードreq.body
で受け取る:
somekey: "true"
代わりの
somekey: true
それは固定することができますどのように
?
オブジェクトにブール値を持つノードサーバーにhttpリクエストを送信しようとしています。ブーリアンの代わりにノードを受け取るNodejs
私はノードreq.body
で受け取る:
somekey: "true"
代わりの
somekey: true
それは固定することができますどのように
?
body-parser NPMパッケージを使用してください。
var bodyParser = require('body-parser');
//You middleware should have this before the handlers.
app.use(bodyParser.json());
EDIT:
これはあなたのAJAXリクエストがどのように見えるかです。リクエストボディにJSON.stringify
の部分がないか、リクエストヘッダーにContent-Type: application/json
が設定されていない可能性があります。これは私のために働く。
私はすでにそれを持っています: var bodyParser = require( 'body-parser'); app.use(bodyParser.json()); // jsonエンコードされたボディをサポートします app.use(bodyParser.urlencoded({extended:true})); //エンコードされたボディーをサポートします – Raz
要求を送信するのにどのコードを使用していますか?ここに投稿してください。 –
私は、標準のHTTPリクエスト(ajax)を行っています。オブジェクトの配列を送信しています。それ以上はありません。 – Raz
これを自動化する方法を尋ねられたので、これは簡単なループfor
で動作します。 以下のソリューションは、整数とブール値をそのまま解析します。
var testresponse = { "a": "true", "b": "123", "c": "false", "d": "true", "e": "abc" };
for (i in testresponse){
if (testresponse[i] === "true" || testresponse[i] === "false"){
testresponse[i] = JSON.parse(testresponse[i]);
}
else if (!isNaN(testresponse[i])){
testresponse[i] = parseInt(testresponse[i]);
}
}
console.log(testresponse);
デモ:int型でも
var testresponse = { "a": "true", "b": "123", "c": "false", "d": "true", "e": "abc" };
for (i in testresponse){
if (testresponse[i] === "true" || testresponse[i] === "false") testresponse[i] = JSON.parse(testresponse[i]);
else if (!isNaN(testresponse[i])) testresponse[i] = parseInt(testresponse[i]);
}
console.log(testresponse);
おそらく自動化は正しい言葉ではありません。デフォルトとして設定する必要があります.AJAXを介してオブジェクトの配列を送信しています。私はちょうどそれを自分で解析するのではなく、オブジェクトを(boolとintを使って)保持したい。たとえば、Mongo dbに挿入すると、データは自動的にそのようになります。手動で行う必要はありません。 – Raz
@Razそうは思わない。しかし、私が提供したメソッドを関数にラップし、その結果を返すことができます。これはすべてのAJAXレスポンスに適用できます。あなたの質問に[Add some code](https://stackoverflow.com/posts/47651172/edit)と私はあなたのための例をしようとします。 – NullDev
... – Raz
は、あなたの質問に関する詳しい情報が必要です。 –
要求の送信に使用しているコードを貼り付けます。 –