Del via


Datatypen typeløst objekt

Objekt uten type er en datatype i Power Fx som kan inneholde alle datastrukturer, komplekse og enkle. Den kan ikke brukes direkte og krever eksplisitt konvertering til en datatype. Felt i oppføringer i et objekt uten type kan du få tilgang til ved å bruke punktnotasjonen, og eksistens av felt bekreftes bare ved kjøretid.

Objekt uten type er returtypen til bestemte ikke-angitte leverandører. For øyeblikket returnerer bare ParseJSON()-funksjonen objekt uten type.

Enkle typer

Verdien til en variabel av typen objekt uten type kan ikke brukes direkte. Du må alltid skrive det inn riktig med den tilsvarende typekonstruktør.

Eksemplene nedenfor konverterer verdien til et objekt uten type variabelen med navnet UOValue.

Text(UOValue)
Value(UOValue)

Tabellen nedenfor viser datatypene og tilhørende funksjoner for å konvertere objekt uten type til datatypen.

Datatype Function Bekrivelse
Boolean Boolean() Når du konverterer typeløst objekt til boolsk, må den underliggende verdien representere et boolsk objekt eller en type som kan konverteres automatisk (f.eks. en streng som sann).
Color ColorValue() or RGBA() Farger kan representeres i fargedefinisjons notasjon for gjennomgripende stilark (CSS) som en streng eller som individuelle RGBA-komponenter. Objekt uten type kan konverteres direkte fra en fargedefinisjonsstreng til et gjennomgripende stilark (CSS) ved hjelp av ColorValue()-funksjonen eller fra individuelle RGBA-tall yoø til farge ved hjelp av RGBA()-funksjonen.
Valuta, tall Value() Når du konverterer typeløst objekt til tall, må den underliggende verdien representere et tall eller en type som kan konverteres automatisk (f.eks. en streng som 123.456).
Dato, DateTime, Klokkeslett DateValue(), TimeValue() or DateTimeValue() Dato, klokkeslett og dato/klokkeslett kan konverteres direkte fra objekt uten type til deres respektive type når de representeres i ISO 8601-format. Andre formater må først konverteres til tekst ved hjelp av Text()-funksjonen og deretter sendes til DateValue(), TimeValue() eller DateTimeValue()-funksjonen som vil bruke språk som standard i innstillingene for gjeldende bruker til å tolke dato og klokkeslett.
GUID GUID() Et typeløst objekt kan konverteres direkte til GUID hvis det underliggende objektet representerer en GUID, eller hvis det representerer en streng.
Hyperkobling, Bilde, Media Text() Disse datatypene er tekstdatatyper som kan konverteres til tekst og deretter brukes i Power Fx.
Valg, To alternativer Switch() or If() Valgmuligheter og to muligheter presenteres som lokaliserte strenger i Power Fx. Valgmuligheter støttes av et tall og to muligheter som boolske alternativer. Det finnes ingen direkte konvertering fra boolsk, tall eller streng til et valgmuligheter eller to muligheter, men Switch()- eller If()-funksjonene kan brukes på boolsk, tekst eller nummerverdi for å tilordne verdien valgmulighet eller to muligheter.
Spill inn i/t Ingen direkte konvertering fra objekt uten type til en oppføringsstruktur, men enkeltfelt kan hentes fra objekt uten type for å opprette en ny oppføring.
Oppføringsreferanse i/t Oppføringsreferanser er unike for datakilder og har ingen meningsfylt representasjon i objekter uten type.
Table Table() og ForAll() Et objekt uten type kan representere en matrise, som kan konverteres til en tabell. Disse objektene kan være matriser med oppføringer, eller matriser med verdier som er tabeller med én kolonne. ForAll() kan brukes til å opprette en tabell med fullstendige oppføringer. Se gjennom eksemplene lenger nede i denne artikkelen hvis du vil ha mer informasjon.
Tekstmelding Text() Tekst kan konverteres direkte. Hvis et objekt uten type representerer et tall, må du konvertere objektet uten type til tallet først ved å bruke Value() før du konverterer til tekst.

Oppføringstyper

Du kan få tilgang til felt på en variabel som representerer et objekt uten type-oppføring ved å bruke vanlig punktnotasjon for oppføringer. Felteksistensen blir imidlertid ikke kontrollert før kjøretiden. Dette fører til at ingen intellisense er tilgjengelige. Hvis et felt ikke finnes eller har en underliggende null-verdi, fører tilgang til en Blank()-verdi.

Hvert felt i oppføringen er også av typen objekt uten type og må skrives inn riktig. Feltet kan være en oppføring uten type av en enkel type. Hvis det er en oppføring, kan du koble til punktnotasjonen. Hvis et felt i kjeden ikke finnes, returneres Blank().

Eksemplene nedenfor bruker felt fra et objekt uten type-variabel med navnet UORecord.

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

Hvis et feltnavn består av et ugyldig identifikatornavn, for eksempel når feltnavnene starter med et tall eller inneholder ugyldige tegn, for eksempel en bindestrek, kan du plassere feltnavnene i enkle anførselstegn:

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

Matriser

En objekt uten type-variabel kan inneholde en matrise. Selv om matrisen kan være en matrise med oppføringer eller en matrise med enkle typer, vil konvertering av objekt uten type-matrisen til en tabell ved hjelp av Table()-funksjonen alltid føre til en tabell med enkeltkolonner med objekt uten type. Funksjoner som ForAll() og Index() krever ikke at du først oppretter en Table(), og derfor ikke at du bruker enkeltkolonnefeltet Value.

Hvis du for eksempel vil hente det andre tallet i en matrise med objekt uten type som inneholder tallverdier ( [1, 2, 3] ), kan følgende formel brukes til å hente den andre raden i tabellen og konvertere kolonnen til et tall:

Value( Index( UOArray, 2 ) )

Hvis objektet uten type først ble konvertert til en Table(), er den andre raden i resultattabellen med én kolonne en Value-kolonne som inneholder objektet uten type:

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

Den samme logikken gjelder for en matrise med oppføringer som har en tekstkolonne kalt Field. Objektet uten type kan være direkte tilgjengelig, eller hvis Table()-funksjonen brukes, blir resultatet en enkeltkolonnetabell med objekt uten type.

Field-kolonnen er direkte tilgjengelig fra objektet uten type som returneres av Index()-funksjonen.

Text( Index( UORecordArray, 2 ).Field )

Når du bruker Table()-funksjonen, henter du først enkeltkolonnen Value for å få objektet uten type, og deretter går du til Field-kolonnen:

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

Hvis du vil konvertere en matrise med oppføringer til en tabell med type, kan du bruke ForAll()-funksjonen og konvertere hvert enkelt felt.

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

Hvis objektet uten type først konverteres til en tabell, krever den resulterende enkelkolonnetabellen for objekt uten type at du bruker Value-kolonnen til å hente feltene.

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