무형식 개체 데이터 형식

무형식 개체는 복잡하거나 단순한 모든 데이터 구조를 보유할 수 있는 Power Fx의 데이터 형식입니다. 직접 사용할 수 없으며 데이터 형식으로의 명시적 변환이 필요합니다. 무형식 개체의 레코드에 있는 필드는 점 표기법을 사용하여 액세스할 수 있으며 필드의 존재는 런타임 시에만 확인됩니다.

무형식 개체는 형식이 지정되지 않은 특정 공급자의 반환 유형입니다. 현재 ParseJSON() 함수만 무형식 개체를 반환합니다.

간단한 형식

무형식 개체 형식의 변수 값은 직접 사용할 수 없습니다. 항상 해당 형식 생성자를 사용하여 올바르게 입력해야 합니다.

다음 예는 UOValue라는 무형식 개체 변수의 값을 변환합니다.

Text(UOValue)
Value(UOValue)

다음 표에는 무형식 개체를 해당 데이터 형식으로 변환하는 데이터 형식 및 해당 함수가 나와 있습니다.

데이터 유형 함수 Description
부울 Boolean() 형식화되지 않은 개체부울로 변환할 때 기본 값은 부울 또는 자동으로 변환할 수 있는 유형(예: 문자열 "true")을 나타내야 합니다.
색상 ColorValue() or RGBA() 색상은 CSS(Cascading Style Sheet) 색상 정의 표기법에서 문자열로 또는 개별 RGBA 구성 요소로 표시될 수 있습니다. 무형식 개체ColorValue() 함수를 사용하여 CSS(Cascading Style Sheet) 색상 정의 문자열에서 직접 변환하거나 개별 RGBA 숫자RGBA() 함수를 사용하여 색상으로 변환합니다.
통화, 숫자 Value() 형식화되지 않은 개체숫자로 변환할 때 기본 값은 숫자 또는 자동으로 변환할 수 있는 유형(예: 문자열 "123.456")을 나타내야 합니다.
날짜, 날짜/시간, 시간 DateValue(), TimeValue() 또는 DateTimeValue() 날짜, 시간 및 날짜/시간은 ISO 8601 형식으로 표시될 때 무형식 개체에서 해당 형식으로 직접 변환될 수 있습니다. 다른 형식은 먼저 Text() 함수를 사용하여 텍스트로 변환한 다음 DateValue(), TimeValue() 또는 DateTimeValue() 함수로 전달되어야 하며, 이 함수는 기본적으로 날짜와 시간을 해석하기 위해 현재 사용자 설정의 언어를 사용합니다.
GUID GUID() 형식화되지 않은 개체는 기본 개체가 GUID를 나타내거나 문자열을 나타내는 경우 GUID로 직접 변환될 수 있습니다.
하이퍼 링크, 이미지, 미디어 Text() 이러한 데이터 형식은 텍스트 데이터 형식이며 텍스트로 변환하여 Power Fx에서 사용할 수 있습니다.
선택, 두 가지 옵션 Switch() 또는 If() 선택두 가지 옵션은 Power Fx에서 현지화된 문자열로 표시됩니다. 선택은 숫자로 지원되고 두 가지 옵션은 부울로 지원됩니다. 부울, 숫자 또는 문자열에서 선택 또는 두 가지 옵션으로의 직접적인 변환은 없지만 Switch() 또는 If() 함수를 부울, 텍스트 또는 숫자 값에 사용하여 선택 또는 두 가지 옵션 값을 올바르게 할당할 수 있습니다.
녹음 해당 없음 무형식 개체에서 레코드 구조로의 직접적인 변환은 없지만 무형식 개체에서 개별 필드를 검색하여 새 레코드를 만들 수 있습니다.
레코드 참조 해당 없음 레코드 참조는 데이터 원본에 고유하며 무형식 개체에 의미 있는 표현이 없습니다.
테이블 Table()ForAll() 무형식 개체는 테이블로 변환할 수 있는 배열을 나타낼 수 있습니다. 이러한 개체는 레코드 배열이거나 사실상 단일 열 테이블인 값 배열일 수 있습니다. ForAll()은 완전한 형식의 레코드가 있는 테이블을 만드는 데 사용할 수 있습니다. 자세한 내용은 이 문서 아래에 있는 예시를 검토하세요.
문자 Text() 텍스트를 직접 변환할 수 있습니다. 무형식 개체가 숫자를 나타내는 경우 텍스트로 변환하기 전에 먼저 무형식 개체Value()를 사용하여 숫자로 변환해야 합니다. .

레코드 종류

레코드에 사용되는 일반 점 표기법을 사용하여 무형식 개체 레코드를 나타내는 변수의 필드에 액세스할 수 있습니다. 그러나 필드의 존재는 런타임까지 확인되지 않습니다. 결과적으로 IntelliSense도 사용할 수 없습니다. 필드가 존재하지 않거나 기본 null 값이 있는 경우 해당 필드에 액세스하면 Blank() 값이 생성됩니다.

레코드의 각 필드도 무형식 개체 형식이며 올바르게 입력해야 합니다. 필드는 단순 형식의 형식이 지정되지 않은 레코드일 수 있습니다. 레코드인 경우 점 표기법을 연결할 수 있습니다. 체인에 필드가 없으면 Blank()가 반환됩니다.

다음 예는 UORecord라는 무형식 개체 변수의 필드를 사용합니다.

Text(UORecord.StringField)
Value(UORecord.Field.ChildField)

필드 이름이 잘못된 식별자 이름으로 구성된 경우(예: 필드 이름이 숫자로 시작하거나 하이픈과 같은 잘못된 문자가 포함된 경우) 필드 이름을 작은 따옴표로 묶을 수 있습니다.

untyped.'01'
untyped.'my-field'

배열

무형식 개체 변수에는 배열이 포함될 수 있습니다. 배열이 레코드 배열 또는 단순 형식 배열일 수 있지만 무형식 개체 배열을 Table() 함수를 사용하여 테이블로 변환 항상 무형식 개체의 단일 열 테이블이 생성됩니다. ForAll()Index()와 같은 함수는 먼저 Table()을 만들 필요가 없으므로 단일 열 Value 필드를 사용할 필요가 없습니다.

예를 들어 숫자 값([1, 2, 3])을 포함하는 무형식 개체 배열에서 두 번째 숫자를 가져오려면 다음 수식을 사용하여 테이블의 두 번째 행을 검색하고 열을 숫자로 변환할 수 있습니다.

Value( Index( UOArray, 2 ) )

무형식 개체가 먼저 Table()로 변환된 경우 결과 단일 열 테이블의 두 번째 행은 무형식 개체를 포함하는 Value 열입니다.

Value( Index( Table( UOArray ), 2 ).Value )

Field라는 텍스트 열이 있는 레코드 배열의 경우 동일한 논리가 적용됩니다. 무형식 개체에 직접 액세스하거나 Table() 함수를 사용하면 무형식 개체의 단일 열 테이블이 생성됩니다.

Field 열은 Index() 함수에 의해 반환된 무형식 개체에서 직접 액세스할 수 있습니다.

Text( Index( UORecordArray, 2 ).Field )

Table() 함수를 사용할 때 먼저 단일 열 Value 열을 검색하여 무형식 개체를 가져온 다음 Field 열에 액세스합니다.

Text( Index( Table( UORecordArray ), 2 ).Value.Field )

레코드 배열을 유형이 지정된 테이블로 변환하려면 ForAll() 함수를 사용하고 각 개별 필드를 변환할 수 있습니다.

ForAll( UORecordArray, { FirstField: Value(ThisRecord.FirstField), SecondField: Text(ThisRecord.SecondField) } )

무형식 개체가 먼저 테이블로 변환되면 다시 무형식 개체의 결과 단일 열 테이블에서 필드를 가져오기 위해 Value 열을 사용해야 합니다.

ForAll( Table(UORecordArray), { FirstField: Value(ThisRecord.Value.FirstField), SecondField: Text(ThisRecord.Value.SecondField) } )