json - Node.js 中的正文解析不会转义请求正文中的换行符? JSON

标签 json node.js express body-parser

我正在创建一个基本的反向代理来将客户端请求传递到远程服务器。

因此,我将 body-parse 与 express.js 一起用于 Node 服务器,以允许我传递正文。

但是 JSON 中包含换行符和额外的大括号。

客户端

{
   "lastRefreshedDateTime" : "2015-05-24",
   "uid" : "1232141451"
}

服务器端

{
    '{
        \r\n"lastRefreshedDateTime": "2015-05-24",
        \r\n"uid
": "1234567124321"\r\n
    }\r\n': ''
}

Node.js 代码

        var express = require('express');
    var http = require('request');
    var path = require('path');
    var url = require("url");
    var bodyParser = require("body-parser"); //this is required in express 4.x to output the contents of the client request body
    var app = express(); //start express server

    // parse application/x-www-form-urlencoded
//app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser().json())
    // POST - getLocationData
    app.post('/getLocationData', function (request, response)
    {
        console.log("Request for /getLocationData");
        forwardRequest(request, response, "getLocationData", "POST", true);
    });


    app.listen(8080);

    function forwardRequest(request, response, serviceName, requestMethod, isJSON)
    {

        console.log("Making request to EAS for " + serviceName + ":");
        console.log(request.body); //json is fubar!

    };

我自己尝试删除换行符,但仍然没有解决额外的大括号和倒置命令的问题

最佳答案

在客户端丑化 json。在发送字符串之前去掉 pretty-print ,应该可以消除问题。

在客户端使用 JSON.stringify,在服务器端使用 JSON.parse

edited to reflect comments

引用您关于JMeter usage的问题,您遇到的问题实际上可能是由 Jackson 或另一个 Java JSON 库引起的。 将内容类型编码设置为 UTF-8 通常可以完全解决该问题。

关于json - Node.js 中的正文解析不会转义请求正文中的换行符? JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30427176/

相关文章:

javascript - 如何从客户端的 Node 和 Express 服务器获取完整的错误消息?

javascript - 无法将数据从 Angular 应用程序发布到 Play!框架

jquery - Ajax数据源(对象):TypeError: f is undefined

java - 如何根据json中的特定键将一个数据流中的接收器添加到不同的路径?

javascript - 将静态文本附加到 ejs 中数据的第一个索引

mysql - 无法从 AJAX POST 成功函数 Express/mySQL 获取数据

node.js - 从异步递归函数返回值

node.js - 如何在 express 应用程序中设置基于 Jade 的选项? (使用 "basedir"和 "extends"路径需要 "absolute"选项)

javascript - Node - 自定义错误助手

javascript - 无法获取 key :value from Json array