我是微软Dynamics 365 & Power Platform方面的工程师/顾问罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),这是我的第487篇原创文章,写于2022年10月24日。
JSON函数的介绍请参考官方文档:JSON function in Power Apps ,接着前一篇博文,使用Defaults(表的复数展示名) 对集合进行了初始化然后对其中记录进行了更新,或者直接Filter或者Lookup进行了集合的初始化,我们如果要展示这集合的JSON文本形式呢?如果直接使用JSON函数的话会报错的,报错信息一般是:The JSON function cannot serialize tables / objects with a nested property called '_ly_customer_value' of type 'Polymorphic'.。
这时候我们使用参数 JSONFormat.IgnoreUnsupportedTypes 即可解决。但是这个带来的问题是,有些我需要的复杂类型的字段,比如查找字段进行JSON文本化后不见了,如何拿到这个ID值并且也JSON文本化呢?我们可以使用 AddColumns 函数,函数的官方文档请参考 AddColumns, DropColumns, RenameColumns, and ShowColumns functions in Power Apps 。但是这个添加列不是在原有Collection上增加一个列,而是函数返回的Collection上会增加这个列,另外值得注意的是增加的列的名称要用双引号引用起来,所以我这里更改下代码如下,比如我针对 ly_submittedby 字段增加一个列 ly_submittedby_id,然后JSON文本化。一般的,为了控制JSON文本化后的大小,我们一般还会使用ShowColumns来制定列,下面是一个示例:
转换后的JSON文本示例如下: