如何删除 Wiremock 中每个循环中的最后一个逗号
How to remove the last comma in an each loop in Wiremock
我需要为看起来像这样的请求编写存根:
[
{ "todo_id": 1 },
{ "todo_id": 2 }
]
请求中待办事项的数量可能会有所不同。
我的回复目前是这样的:
"response": {
"status": 200,
"body": "[ {{#each (jsonPath request.body '$') as |todo|}}
{ \"todo_id\": {{todo.todo_id}} },
{{/each}}
]"
}
请注意,我将正文隔开以使其更具可读性,在实际的存根中,它们都在一行上。
所以我的问题是我的待办事项对象后需要逗号,以防请求中传递了多个对象。然而,这也使最后一个对象也带有逗号,因此如果发送了上述请求,这将是响应:
[
{ "todo_id": 1 },
{ "todo_id": 2 },
]
最后一个逗号使 .json()
方法在需要从该 WireMock 存根读取响应的 Python 应用程序中失败。
关于如何去掉最后一个逗号有什么想法吗?我在想可能在逗号周围有一个 eq
条件并检查当前 todo
变量是否与 {{jsonPath request.body '$.[-1]'}}
相同但是这样写:
{{#eq todo {{jsonPath request.body '$.[-1]'}} }}
也没用。
如有任何关于如何去掉最后一个逗号的建议,我们将不胜感激。谢谢:)
在 Google 个群组上得到了答案。
可以在每个循环中使用 @last
来检测您何时在最后一项上,例如:
{{#each (jsonPath request.body '$.things') as |thing|}}
{{#if @last}}
{ "thing": {{{thing}}} }
{{else}}
{ "thing": {{{thing}}} },
{{/if}}
{{/each}}
我需要为看起来像这样的请求编写存根:
[
{ "todo_id": 1 },
{ "todo_id": 2 }
]
请求中待办事项的数量可能会有所不同。
我的回复目前是这样的:
"response": {
"status": 200,
"body": "[ {{#each (jsonPath request.body '$') as |todo|}}
{ \"todo_id\": {{todo.todo_id}} },
{{/each}}
]"
}
请注意,我将正文隔开以使其更具可读性,在实际的存根中,它们都在一行上。
所以我的问题是我的待办事项对象后需要逗号,以防请求中传递了多个对象。然而,这也使最后一个对象也带有逗号,因此如果发送了上述请求,这将是响应:
[
{ "todo_id": 1 },
{ "todo_id": 2 },
]
最后一个逗号使 .json()
方法在需要从该 WireMock 存根读取响应的 Python 应用程序中失败。
关于如何去掉最后一个逗号有什么想法吗?我在想可能在逗号周围有一个 eq
条件并检查当前 todo
变量是否与 {{jsonPath request.body '$.[-1]'}}
相同但是这样写:
{{#eq todo {{jsonPath request.body '$.[-1]'}} }}
也没用。
如有任何关于如何去掉最后一个逗号的建议,我们将不胜感激。谢谢:)
在 Google 个群组上得到了答案。
可以在每个循环中使用 @last
来检测您何时在最后一项上,例如:
{{#each (jsonPath request.body '$.things') as |thing|}}
{{#if @last}}
{ "thing": {{{thing}}} }
{{else}}
{ "thing": {{{thing}}} },
{{/if}}
{{/each}}