Azure api management 使用Azure API管理服务,从JSON请求中删除额外空间
我正在使用azure API管理服务记录API的请求和响应 现在我需要从传入的JSON请求中删除额外的空间。我尝试了很多方法,比如“查找并替换”和“替换过滤器”,但都没能实现Azure api management 使用Azure API管理服务,从JSON请求中删除额外空间,azure-api-management,Azure Api Management,我正在使用azure API管理服务记录API的请求和响应 现在我需要从传入的JSON请求中删除额外的空间。我尝试了很多方法,比如“查找并替换”和“替换过滤器”,但都没能实现 eg: Incoming request body.FullName ="XYZ ABC" <set-body template="liquid"> { "Id": "{{body.Id}}", "FullName":"{{body.FullName]}}" } &l
eg: Incoming request
body.FullName ="XYZ ABC"
<set-body template="liquid">
{
"Id": "{{body.Id}}",
"FullName":"{{body.FullName]}}"
}
</set-body>
如果只想对某些属性执行此操作,请尝试:
<set-body template="liquid">
{
"Id": "{{body.Id}}",
"FullName":"{{body.FullName | split: " " | join: " "}}"
}
</set-body>
{
“Id”:“{body.Id}”,
“全名”:“{body.FullName | split:”“join:”“}”
}
在液体中似乎没有更好的方法
如果你想在不分析身体结构的情况下对整个身体进行分析,那么:
<set-body>@(Regex.Replace(context.Request.Body.As<string>(), @"\s+", " "))</set-body>
@(Regex.Replace(context.Request.Body.As(),@“\s+”,“”)
或者,您可以将整个正文解析为JObject,然后迭代以递归方式修复每个属性值。当有2个以上的空格时,它将不起作用,例如:“FullName”:“XYZ ABC”//根据您的答案,3个空格的输出将是:2个空格合并为1个空格,加上剩余的1个空格将不会被更改。总计将是2个空格,例如:“全名”:“XYZ ABC”//2个空格。更新了一个补丁。
<set-body>@(Regex.Replace(context.Request.Body.As<string>(), @"\s+", " "))</set-body>