我正在尝试将 JSON 发布到 Node 应用程序,该应用程序将通过 GET 简单地返回它。客户端,我生成模型的 JSON 字符串,并将其 POST 到服务器:
$.post(serverURL, ko.mapping.toJS(viewModel), function(data) {}, "json");
这会产生一个字符串,如下所示:
{"switches":[{"id":1,"name":"Living Room","state":false},{"id":2,"name":"Dining Room","state":false},{"id":3,"name":"Kitchen Room","state":true},{"id":4,"name":"Aviary","state":true}]}
请注意,“状态”值是不带引号的真/假,这是有效的 JSON。在服务器上,如果我记录请求正文,我会得到以下信息:
{ switches:
[ { id: '1', name: 'Living Room', state: 'false' },
{ id: '2', name: 'Dining Room', state: 'false' },
{ id: '3', name: 'Kitchen Room', state: 'true' },
{ id: '4', name: 'Aviary', state: 'true' } ] }
注意区别:
- 它引用了真/假值
- 它有不带引号的对象名称
- 引号是单引号
我的目标是简单地将原始 JSON 对象存储为其原始字符串格式,以便稍后进行 GET 请求。什么在做这种格式化,我该如何防止它?
每个请求的附加信息
我的 Node.JS 代码如下:
var express = require('express');
var app = express();
var model;
app.configure( function () {});
app.use(express.bodyParser());
app.get('/', function (req,res) {
res.setHeader('Content-Type', 'application/json');
console.log(model);
res.send(model);
});
app.post('/', function (req,res) {
res.header("Access-Control-Allow-Methods", "POST");
res.setHeader('Content-Type', 'application/json');
model = req.body;
console.log(model);
});
app.listen(3000);