json请求体包含一个我想要访问并存储在context.Variable中的值,这样以后我就可以在控制流表达式中使用它。
下面是JSON请求体:
{
"File": [
{
"Key": "ValueToGet",
"List": [
{},
{}
]
}
]
}
我希望“ValueToGet”是set-variable策略的值,如下所示:
<set-variable name="myVar" value="ValueToGet">
我尝试用这个表达式将body存储在一个单独的变量中:
<set-variable name="varBody" value="@(context.Request.Body.As<JObject>())" />
然后在下一个set变量策略中使用它:
<set-variable name="myVar" value="@{
JObject json = JObject.Parse(context.Variables.GetValueOrDefault<string>("varBody"));
var code = json.GetValue("Key");
return code;
}" />
但它似乎不起作用,我收到以下错误,这与我存储身体的方式有关:
{
"messages": [
{
"message": "Expression evaluation failed.",
"expression": "context.Request.Body.As<JObject>()",
"details": "Object reference not set to an instance of an object."
},
"Expression evaluation failed. Object reference not set to an instance of an object.",
"Object reference not set to an instance of an object."
]
}
当我试图访问同一个set-variable策略中的请求体时,也会出现同样的错误。
我为这个问题绞尽脑汁已经有一段时间了,如果能得到任何帮助,我将不胜感激。谢谢
1条答案
按热度按时间p1iqtdky1#
如果你只是想设置一个变量的值
Key
的第一个File
项目,只需尝试下面的表达式:我已经在我这边测试了你的请求体,它对我来说非常有效:
跟踪日志: