我希望有人看到这一点并确切地知道该怎么做。我觉得我尝试了一切:(。为了提供一点背景知识,我正在尝试创建一个通用的 rest 端点来代理 SOAP 报告服务后端并将查询字符串 keyValues 作为参数传递。
我使用 context.Request.OriginalUrl.Query 开始了路径,即:IReadOnlyDictionary<string, string[]>
并循环遍历键和值。这是我的首选方法,但我收到了错误:
Liquid 语法错误:对象 '[p_customer_name, System.String[]]' 无效,因为它既不是内置类型也不是实现 ILiquidizable
上面生成的代码:
<v2:listOfParamNameValues>
{% for parameter in context.Request.OriginalUrl.Query %}
<v2:item><v2:name>{{parameter.Key}}</v2:name><v2:values>
{% for value in parameter.Value %}
<v2:item>{{value}}</v2:item>
{% endfor %}
</v2:values></v2:item>
{% endfor %}
</v2:listOfParamNameValues>
我放弃了,开始自己解析 QueryString 以便我可以继续,但使用Split: &
或Split: '&'
似乎忽略了 & 并Split: '&'
导致错误:
一个或多个字段包含不正确的值:解析 EntityName 时出错。第 15 行,位置 123。
<v2:listOfParamNameValues>{% assign parts = context.Request.OriginalUrl.QueryString | Remove-First: '?' | Split:'&' -%}
{%- for part in parts -%}
{%- assign keyValues = part | Split:'=' -%}
{%- for keyValue in keyValues -%}
{{-keyValue[0]}}:{{keyValue[1]-}}
{%- endfor -%}
{%- endfor %}</v2:listOfParamNameValues>
我对任何想法持开放态度,让我知道是否还有其他可以帮助的内容。
谢谢!