Dynamics crm 如何在power应用程序中将json转换为集合

Dynamics crm 如何在power应用程序中将json转换为集合,dynamics-crm,powerapps,power-automate,power-platform,Dynamics Crm,Powerapps,Power Automate,Power Platform,我有一个power应用程序,它使用power的流程实现自动化 我的流程是通过HTTP获取并响应JSON到power应用程序,如下所示 以下是JSON格式的文本: {"value": "[{\"dataAreaId\":\"mv\",\"AccountNum\":\"100000\",\"Name\":\"*****L FOOD AB\"},{\&

我有一个power应用程序,它使用power的流程实现自动化

我的流程是通过HTTP获取并响应JSON到power应用程序,如下所示

以下是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创建一个集合以绑定到gallery视图?

我找到了解决方案。我最终根据flow的响应创建了一个集合。 流的名称是GetVendor

流的响应如下所示:

{"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>[^""]*)""\}"));
ClearCollect(\u vendorData,MatchAll(GetVendors.Run(\u token.value).value,“\{”“dataAreaId”“:”“(?[^”“]*)”,“AccountNum”“:”“(?[^”“]*),“Name”“:”(?[^”“]*),“\}”);

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

在我的情况下,我遇到了与您相同的问题,但无法将数据获取到_vendorData集合中,因为MatchAll regex部分无法正常工作,即使我有完全相同的场景,我也无法使其工作

我的解决方案是修改流本身,在这里我返回了
Response
,而不是
Response-to-Power应用程序或流
,因此基本上我可以从Http返回完整的请求。

这也给我带来了一些问题,因为当我从示例生成模式时,我无法将流注册到powerapp,在http发送请求期间出现错误
失败

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

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

下面是响应步骤模式示例

{
“类型”:“对象”,
“财产”:{
“不动产”:{
“类型”:“字符串”
},
“财产2”:{
“类型”:“整数”
},
“地产树”:{
“类型”:“布尔”
},
“四房地产”:{
“类型”:“数组”,
“项目”:{
“类型”:“对象”,
“财产”:{
“物业租赁1”:{
“类型”:“字符串”
},
“物业租赁1”:{
“类型”:“整数”
},
“物业租赁1”:{
“类型”:“布尔”
}
}
}