在Mule4中将Http响应数据设置为变量

问题描述

我正在尝试在变量中设置http响应值。以下是来自http请求的响应

{
"kind": "drive#file","id": "1MxumGPQD9dH161BQJCoJ_","name": "2020_August","mimeType": "application/vnd.google-apps.folder"
}

在超出响应范围后,如何仅在变量中设置id字段。

我正在尝试以转换形式的消息这种逻辑方式

%dw 2.0
output application/json
---
{
    "id":payload.id
}

但是给我错误

解决方法

您的HttpRequest调用返回的内容是二进制的。

尝试一下:

%dw 2.0
output application/json
---
id: read(payload,"application/json").'id'

这应该返回您要查找的内容:

{
  "id": "1MxumGPQD9dH161BQJCoJ_"
}

如果要将其捕获到局部变量中,请使用set变量进行定义,如下所示:

<set-variable value="#[read(payload,&quot;application/json&quot;).'id']" doc:name="id" variableName="id"/>