列名和列函数
适用于: 画布应用 模型驱动应用 Power Platform CLI
从非类型化对象中检索列名和值。
描述
ColumnNames 函数返回非类型化记录中所有列的名称,返回一个包含该记录中所有名称的表。
Column 函数返回具有给定列名的非类型化记录的属性值。 该值作为非类型化对象返回。
如果非类型化对象不代表记录(即,如果代表表格或标量或原始值),则 ColumnNames 和 Column 函数将返回错误。
语法
ColumnNames( UntypedRecord )
- UntypedRecord –必需。 一个表示记录的非类型化对象。
列(UntypedRecord,ColumnName )
- UntypedRecord –必需。 一个表示记录的非类型化对象。
- ColumnName - 必需。 要从给定记录中检索的列的名称。
示例
访问字段值
假定在名为 JsonString
的变量中有以下 JSON 字符串
{ "name": "Seattle", "population": 737000 }
以下公式返回一个单列表,其中
Value
列包含以下值:"name"、"population":ColumnNames( ParseJSON( JsonString ) )
以下公式返回数字
737000
:Value( Column( ParseJSON( JsonString ), "population" ) )
2.1. 请注意,这类似于用于非类型化记录的
.
运算符,但是不需要事先知道列名。以下公式返回文本值
"name: Seattle, population: 737000"
:With( { untyped: ParseJSON( JsonString ) }, Concat( ColumnNames( untyped ), $"{Value}: {Column( untyped, Value )}", ", "))
空白
假定在名为 JsonString
的变量中有以下 JSON 字符串
{ "text": "text value" , "number": 567, "empty": null }
- 尝试访问不存在的字段将返回 Blank()。 以下公式返回
true
:IsBlank( Column( ParseJSON( JsonString ), "does not exist" ) )
- JSON
null
值被视为 Blank()。 以下公式返回true
:IsBlank( Column( ParseJSON( JsonString ), "empty" ) )
Nonrecords
使用不代表记录的非类型化对象调用 Column 或 ColumnNames 函数会返回错误。 以下所有这些表达式都是错误的:
公式 | 错误原因 |
---|---|
ColumnNames(ParseJSON(“[1,2,3]”))) | 非类型化对象表示数组 |
列(ParseJSON(“23.45”),“值”) | 非类型化对象表示数字 |
ColumnNames(ParseJSON(“”“你好”“”)) | 非类型化对象表示文本 |
列(ParseJSON(“{”“a”“”:false}“).a,”a“) | 非类型化对象表示布尔值 |