因此,可以尝试获取以下JSON对象:
$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=ISO-8859-1
Date: Wed, 30 Oct 2013 22:19:10 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked
{
"anotherKey": "anotherValue",
"key": "value"
}
$
有没有一种方法可以使用node或express在服务器的响应中生成完全相同的主体?显然,可以设置标头并指示响应的内容类型将为“ application /
json”,但是存在多种写入/发送对象的方法。我经常看到的一种是通过使用以下形式的命令:
response.write(JSON.stringify(anObject));
但是,这有两点可以使人争辩说它们是“问题”:
另一个想法是使用命令:
response.send(anObject);
这似乎是基于curl的输出发送JSON对象,类似于上面的第一个示例。但是,当在终端上再次使用curl时,在主体的末端没有换行符。那么,如何使用node或node
/ express实际写下这样的内容并在末尾添加换行符呢?
该响应也是一个字符串,如果您要发送经过修饰的响应,出于某种尴尬的原因,可以使用类似 JSON.stringify(anObject, null, 3)
同样重要的是将Content-Type
标头设置为application/json
。
var http = require('http');
var app = http.createServer(function(req,res){
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({ a: 1 }));
});
app.listen(3000);
// > {"a":1}
美化:
var http = require('http');
var app = http.createServer(function(req,res){
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({ a: 1 }, null, 3));
});
app.listen(3000);
// > {
// > "a": 1
// > }
我不确定为什么要用换行符终止它,但是您可以这样做JSON.stringify(...) + '\n'
。
在Express中,您可以通过更改选项来实现。
'json replacer'
JSON替换器回调,默认为null
'json spaces'
用于格式化的JSON响应空间,开发中默认为2,生产中默认为0
实际不建议设置为40
app.set('json spaces', 40);
然后,您可以使用一些json进行响应。
res.json({ a: 1 });
它将使用'json spaces
‘配置进行美化。
问题内容: 我在使用flask.jsonify函数从字典输入中输出格式化的json响应时遇到了一些麻烦,如此处所述。 我的代码似乎正在返回Response对象,而不是我想要的格式化json对象。 我有 其中dict是从调用函数返回的字典对象。 在我的模板中,我有: 显示如下: 我该如何返回我要寻找的json表示形式? 问题答案: 你可以像这样使用json.dumps: 然后将其格式化为模板,如下所
问题内容: 我有2个DropDownList,例如Master-Slave。这是我的Default.aspx: 这是我的脚本: 和我的处理程序: 但没有要追加的内容。另外,我在firebug窗口中看到如下响应(当我从Master ddl中选择G2时): 对于更具体的视图,下图是当我在Master ddl中选择G3时,firebug窗口中的JSON选项卡: 我用这个新的脚本来更改脚本的成功方法: 当
问题内容: 我使用mysql 5.7 我想将联接表的结果串联到单列中。我使用包裹在函数中的函数。这是查询 列包含来自联接表的数据。数据已正确检索,但问题是列未转换为正确的JSON。 如您所见,最后有点“切”。 我也尝试过,但是现在它不能转换为正确的数组。它看起来像字符串太大,不适合列。有办法解决吗? 更新 问题必须出在不适合列的st大小中。我尝试从联接表中选择较少的列,并且它可以正常工作。也许有一
问题内容: 我刚遇到getResourceAsStream()一个非常奇怪的问题。 在我的产品项目JUnit测试中,我使用getResourceAsStream()读取测试数据,我发现getResourceAsStream()有时会替换一些字节: 在此项目中的输出如下所示: D0 9A D1 80 D0 B8 D0 BC D0 B8 D0 BD D0 B0 D0 BB D0 B8 D1 81 D1
我正在使用passport-local和express-session,但我的问题是,当我输入一个地址,关闭会话后,我得到的问题浏览器“页面不正确重定向”,所以我想做的是重定向到地址/登录,而不是显示那个问题 我会留下我的密码 Routes.js 应用程序JS 更新已解决 我在app.get call中调用的函数所做的验证 函数isLoggedIn(req,res,next){ If(req.is
相对新的节点。js,尝试从Angular2获取一个js对象到我的节点。js路由,但我总是从本机对象解析器获得一个标准的“索引0处的意外标记”。 对象很好地到达我的节点工厂,但在发布到路由时失败。 这是被发送到路由的JSON: 这是我在开发人员控制台中收到的错误。 angular2.dev.js:23083异常:语法错误:位置0BrowserDomA的JSON中的意外令牌Sdapter.log错误@