我想从json中获取一个值并将其存储在Azure API Management中的变量中。 请求正文中出现的JSON示例是
{
"ItemCode": 1,
"ItemName": "USA",
"typeCode": "REG"
}
我需要获取ItemCode和typeCode的值并将其存储在变量中。
我已经检查了Microsoft Docs,所有这些都使我可以使用我认为不需要的液体模板来转换主体。
我已经将JSON存储在类似的变量中
set-variable name="varItemCode" value="@(context.Request.Body.As<String>(preserveContent:true))" />
由于它存储了一个字符串,所以我无法遍历JSON对象。
答案 0 :(得分:2)
我能够做到
set-variable name="varTypeCode" value="@{
JObject json = JObject.Parse(context.Variables.GetValueOrDefault("varBody"));
var typeCode = json.GetValue("typeCode");
return typeCode;
}" />
答案 1 :(得分:0)
这有效
<set-variable name="validationResults" value="@(context.Request.Body.As<JObject>())" />
<set-variable name="operation" value="@((string)((JObject)context.Variables["validationResults"])["operation"])" />