从JSON请求主体获取值并将其存储在Azure API管理中的变量中

时间:2019-10-15 07:18:40

标签: azure azure-api-management

我想从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对象。

2 个答案:

答案 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"])" />