Powerapps难以在集合中访问JSON

时间:2018-04-05 10:07:14

标签: swagger powerapps

我很难通过PowerApps访问集合中的数据。

我用这个创建集合:

Collect(coll15,mt.GetAnswers("3b....da","application/json",{question:"eco"}))

使用开发者工具 - >网络标签 - >响应正文 - 返回以下JSON数据:

{
"answers": [
{
  "answer": "This is the answer",
  "questions": [
    "Private vehicle eco renewal"
  ],
  "score": 82.901087775826454
}
]
}

创建了该集合。

然后我将一个图库控件添加到我的页面 - 但是我必须绑定到标签的唯一选项是:ThisItem.Value

如果我尝试输入ThisItem.Value.answer,我会收到错误:'。'

的使用无效

如果我输入ThisItem.answers.answer,我收到错误:名称无效

这是招摇文件:

{
"swagger": "2.0",
"info": {
  "version": "1.0.0",
  "title": "mt",
  "description": "mt"
},
"host": "westus.api.cognitive.microsoft.com:443",
"basePath": "/",
"schemes": [
  "https"
],
"consumes": [],
"produces": [
  "application/json"
],
"paths": {
  "/qnamaker/v2.0/knowledgebases/eeeee.....eeeee/generateAnswer": {
     "post": {
        "summary": "GetAnswers",
        "description": "Get answers from qna",
        "operationId": "GetAnswers",
        "parameters": [
           {
              "name": "body",
              "in": "body",
              "schema": {
                 "type": "object",
                 "properties": {
                    "question": {
                       "type": "string",
                       "description": "question",
                       "x-ms-summary": "question",
                       "title": "question",
                       "x-ms-visibility": ""
                    }
                 },
                 "default": {
                    "question": "hi"
                 },
                 "required": [
                    "question"
                 ]
              },
              "required": true
           }
        ],
        "responses": {
           "default": {
              "description": "default",
              "schema": {
                 "type": "string"
              }
           }
        }
     }
  }
},
"definitions": {},
"parameters": {},
"responses": {},
"securityDefinitions": {
  "api_key": {
     "type": "apiKey",
     "in": "header",
     "name": "Ocp-Apim-Subscription-Key"
  }
},
"security": [
  {
     "oauth2_auth": [
        "Offline-Access"
     ]
  }
],
"tags": []
}

我有什么方法可以访问集合中的答案文本吗?

感谢您的帮助,

标记

1 个答案:

答案 0 :(得分:1)

问题是连接器定义中操作的响应类型是字符串:

    "responses": {
       "default": {
          "description": "default",
          "schema": {
             "type": "string"
          }
       }
    }

但你的反应是一个对象。如果更改自定义连接器以使用类型化对象,则应该能够从操作中访问响应。以下架构的内容:

    "responses": {
      "default": {
        "description": "default",
        "schema": {
          "type": "object",
          "properties": {
            "answers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "answer": {
                    "type": "string"
                  },
                  "questions": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "score": {
                    "type": "number",
                    "format": "float"
                  }
                }
              }
            }
          }
        }
      }
    },

请注意,在门户网站(web.powerapps.com)中,如果您转到自定义连接器定义,然后选择"编辑",您可以转到该操作,然后选择您想要的响应编辑:

Select response

然后使用"从样本导入"选项

Import from sample

这样,如果您输入API的响应示例,它将为您创建架构(类似于我上面的架构)。