使用Azure API管理服务,从JSON请求中移除额外空间



我使用azure API管理服务来记录API的请求和响应。

现在我需要从传入的JSON请求中移除额外的空间。我尝试了很多东西,比如"查找并更换"和更换过滤器,但都没能实现

eg: Incoming request
body.FullName ="XYZ   ABC"
<set-body template="liquid">
{    
"Id": "{{body.Id}}",
"FullName":"{{body.FullName]}}"       
}
</set-body>

正如您在上面的FullName中看到的那样,XYZ和ABC之间有三个空格。我的要求是删除它们之间的额外空间,正如您在下面的例子中看到的那样。

Final output would be :
{
"Id" : 12
"FullName" : "XYZ ABC"
}

如果只想对某些属性执行此操作,请尝试:

<set-body template="liquid">
{    
"Id": "{{body.Id}}",
"FullName":"{{body.FullName | split: " " | join: " "}}"       
}
</set-body>

在液体中似乎没有更好的方法了。

如果你想在不分析其结构的情况下对整个身体进行分析,那么:

<set-body>@(Regex.Replace(context.Request.Body.As<string>(), @"s+", " "))</set-body>

或者,您可以将整个主体解析为JObject并进行迭代,即递归地修复每个属性值。

相关内容

  • 没有找到相关文章

最新更新