【问题标题】:How to convert json to collection in power apps如何在 Power Apps 中将 json 转换为集合
【发布时间】:2020-10-19 12:14:58
【问题描述】:

我有一个电源应用程序,它使用电源自动执行流程。

我的流程正在执行 HTTP 获取并响应 JSON 以支持如下所示的应用程序。

这里是 JSON 文本:

{"value": "[{\"dataAreaId\":\"mv\",\"AccountNum\":\"100000\",\"Name\":\"*****L FOOD AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100001\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100014\",\"Name\":\"****(SEB)\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100021\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100029\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"500100\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"500210\",\"Name\":\"****\"}]"}

但是当我尝试将此 JSON 转换为集合时,它的行为不像列表。

它看起来就像一个文本。这是我尝试绑定列表的方法。

如何从 JSON 创建一个集合以绑定到画廊视图?

【问题讨论】:

    标签: dynamics-crm powerapps power-automate power-platform


    【解决方案1】:

    我找到了解决方案。我终于从流的响应中创建了一个集合。 流的名称是 GetVendor。

    flow的响应是这样的:

    {"value": "[{\"dataAreaId\":\"mv\",\"AccountNum\":\"100000\",\"Name\":\"*****L FOOD AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100001\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100014\",\"Name\":\"****(SEB)\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100021\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"100029\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"500100\",\"Name\":\"**** AB\"},{\"dataAreaId\":\"mv\",\"AccountNum\":\"500210\",\"Name\":\"****\"}]"}
    

    以下代码从此响应创建一个列表:

    ClearCollect(_vendorData, MatchAll(GetVendors.Run(_token.value).value, "\{""dataAreaId"":""(?<dataAreaId>[^""]*)"",""AccountNum"":""(?<AccountNum>[^""]*)"",""Name"":""(?<Name>[^""]*)""\}"));
    

    我可以将 _vendorDatra 集合中的 accountnum 和 name 绑定到图库视图

    【讨论】:

    • 谢谢,这很有用。不知道为什么有一个 JSON 函数但没有 PARSE 以另一种方式返回。
    【解决方案2】:

    在我的情况下,我遇到了与您相同的问题,但无法将数据导入 _vendorData 集合,因为 MatchAll 正则表达式部分无法正常工作,即使我有完全相同的场景并且我无法使其工作.

    我的解决方案是修改流程本身,我返回Response而不是Respond to a Power app or Flow,所以基本上我可以从Http返回完整请求。

    这也给我带来了一些问题,因为当我从示例生成架构时,我无法将流注册到 powerapp 并出现错误 Failed during http send request

    解决方案是手动查看响应架构并将所有列类型更改为以下三种之一,因为不支持其他类型:stringintegerboolean。对象和数组只能在顶级项目上设置,但不能在子项目上设置,所以如果你有我提到的三个以外的任何东西,请将其替换为字符串。并且任何属性都不能保留未定义的类型。

    基本上我更喜欢这个解决方案,因为在 powerapps 本身中,您不需要进行任何转换或任何事情 - 只需按原样使用数据,因为它已经被识别为数组的集合并且您拥有所有属性已经为你命名了。

    响应步骤架构示例如下。

    {
        "type": "object",
        "properties": {
            "PropertyOne": {
                "type": "string"
            },
            "PropertyTwo": {
                "type": "integer"
            },
            "PropertyThree": {
                "type": "boolean"
            },
            "PropertyFour": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "PropertyArray1": {
                            "type": "string"
                        },
                        "PropertyArray1": {
                            "type": "integer"
                        },
                        "PropertyArray1": {
                            "type": "boolean"
                        }
            }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      • 2018-02-26
      • 1970-01-01
      相关资源
      最近更新 更多