Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在JSON对象中转义反斜杠?_Javascript_Json - Fatal编程技术网

Javascript 如何在JSON对象中转义反斜杠?

Javascript 如何在JSON对象中转义反斜杠?,javascript,json,Javascript,Json,我向一个应用程序发送一个POST请求,请求主体中包含JSON Objet: { "input": { "queryFilter": "mail eq \"john.doe@foo.de\"" } } 请求很好,我得到了200的回复 然后我想通过UI/Form发送相同的请求,并尝试将其作为JSON对象传递,如下所示: input: { queryFilter: '"mail eq \"' + mail + '\" "' } 其结尾为: {输入:{queryFil

我向一个应用程序发送一个POST请求,请求主体中包含JSON Objet:

{
   "input": {
      "queryFilter": "mail eq \"john.doe@foo.de\""
   }
}
请求很好,我得到了200的回复

然后我想通过UI/Form发送相同的请求,并尝试将其作为JSON对象传递,如下所示:

input: {
    queryFilter: '"mail eq \"' + mail + '\" "'
}
其结尾为:
{输入:{queryFilter:“邮件eq”john。doe@foo.de“”“}}

这在语法上是不正确的,也不是通过邮递员工作的JSON。 还尝试将其作为:

input: {
    queryFilter: {
       mail: mail
    }
}
没有帮助

我一直在查看一些帖子,比如:,但它们似乎在处理其他类型的问题
那么,如何才能在JavaScript文件中正确构建JSON对象,使其最终与处理Postman的对象完全相同呢?

这里的错误不是用反斜杠转义的双引号,而是包装JSON值的实际双引号

像下面这样移除它们,你就可以开始了

const-mail=”john@doe.com'
常量对象={
输入:{
queryFilter:'mail eq'+mail+''
}
}
console.log(JSON.stringify(obj))
试试这个:

var mail=“约翰。doe@foo.de";
var mailValue=“mail eq”+“\\\”+邮件+“\\\”;
var result=JSON.stringify(Object.create(null{
输入:{
价值:{
queryFilter:mailValue
},
可枚举:true
}
}));

控制台日志(结果)
删除双引号,如:
输入:{queryFilter:'mail eq\''+mail+'\'''}
它的结尾是:
queryFilter:'mail eq“john。doe@foo.de“”
,这是应用程序所不期望的。它应该保留反斜杠。e、 g.
“queryFilter”:“mail eq\”john。doe@foo.de\“”
。也许我的问题不是100%正确。在第一个示例中,结果字符串中没有反斜杠字符。该
queryFilter
属性的值将是字符串
mail eq“john”。doe@foo.de“
。JavaScript解析器本身将删除这些反斜杠。真的,没有所谓的“JSON对象”;您正在构建的是一个JavaScript对象。当您使用
JSON.stringify()
序列化它时,您将得到一个有效的JSON字符串。为什么要使用字符串连接来构建JSON?有一种专门用于构建JSON的方法:
JSON.stringify()
@Pointy:Yes,true。它被构建为JavaScript对象,然后被序列化为JSON。只是因为思考/打字太快而错过了它。那么,如何在JSON对象的末尾获取包含反斜杠
/
。后端应用程序是基于java的。您不需要逃避双重限制quotes@Andreas:正如我在之前的评论中所说。。。我的问题可能有错误的标题。我想在json中保留反斜杠。应用程序需要这种值:
“queryFilter”:“mail eq\”john。doe@foo.de\“”
。Sry,我的错。
JSON.stringify({queryFilter:'mail eq'john。doe@foo.de“})
->
”{“queryFilter”:“mail eq\”约翰。doe@foo.de\“}”
你说得对@Andreas,我用一个snippet@3Dos当前位置看起来你的答案正确,但我面临一种奇怪的行为。log输出预期的结果,但在与网络进行检查时,然后:我看到的请求有效负载:
input:{queryFilter:“mail eq”john。doe@foo.de“}
。因此,没有后端不需要的反斜杠!我可能会更新我的问题,并添加我用来澄清工作流程的功能。保持不变。我确实更新了我的问题,让它更清楚。它可能与
form.builder.group()函数有关。