Napomena
Za pristup ovoj stranici potrebna je autorizacija. Možete se pokušati prijaviti ili promijeniti direktorije.
Za pristup ovoj stranici potrebna je autorizacija. Možete pokušati promijeniti direktorije.
Odnosi se na: Canvas apps
Copilot Studio
Model-driven apps
Power Platform CLI
Dataverse functions
Power Pages
Tumači niz JSON i vraća dinamičnu vrijednost ili određenu vrstu ako je navedena vrsta.
Važno
- Pretvaranje u tipkani objekt ParseJSON pomoću drugog argumenta eksperimentalna je značajka.
- Eksperimentalne značajke nisu namijenjene u proizvodne svrhe i mogu imati ograničene funkcije. Te su značajke dostupne prije službenog izdanja kako biste mogli dobiti rani pristup i dati povratne informacije. Dodatne informacije: Objašnjenje eksperimentalnih, zastarjelih značajki i značajki pretpregleda u aplikacijama od gotovih gradivnih elemenata
- Ponašanje koje je opisano u ovom članku dostupno je samo kada je uključena eksperimentalna značajka Korisnički definirane vrste u Postavkama > Nadolazeće značajke > Eksperimentalno (prema zadanim postavkama je isključena).
- Vaše povratne informacije su nam vrlo vrijedne. Javite nam što mislite na forumu zajednice o eksperimentalnim Power Apps značajkama.
Opis
Funkcija ParseJSON raščlani valjani niz JSON i vraća dinamičnu vrijednost koja predstavlja JSON strukturu.
Po želji koristite drugi argument za pretvaranje JSON-a u upisani objekt koji se može izravno koristiti u Power Fx formulama. To olakšava konzumiranje rezultata jer konverzije i prisile na mjestu upotrebe više nisu potrebne. Netipizirani JSON mapira se na vrstu sa sljedećim pravilima:
- Stupci u vrsti koji nisu prisutni u JSON-u popunjavaju se praznim .
- Stupci u JSON-u koji nisu prisutni u vrsti zanemaruju se.
- Stupci koji su i u tipu i u JSON-u, JSON vrijednost mora biti prisilna na tip.
Funkcija ParseJSON može vratiti pogreške ako tekst nije valjan za JSON u skladu s oblikom JavaScript Object Notation (JSON) opisanim u ecMA-404i IETF RFC 8259.
Sintaksa
ParseJSON( JSONString [ , Vrsta ] )
- JSONString – Obavezno. JSON struktura predstavljena kao tekst.
- Tip - Nije obavezno. Definicija Power Fx vrste za JSON strukturu. Bez tog argumenta vraća ParseJSON dinamičnu vrijednost, a funkcija vraća određenu vrstu vrijednosti.
Pretvaranje dinamičkih vrijednosti
Bez drugog argumenta vraća dinamičnu ParseJSONvrijednost koja zahtijeva eksplicitno pretvaranje vrijednosti polja u podržanim vrstama podataka. Sljedeća tablica navodi vrste podataka u Power Apps i odgovarajuću JSON vrstu podataka i kako ih pretvoriti.
| Vrsta podataka | Primjeri JSON | Opis | Primjer pretvorbe |
|---|---|---|---|
| Booleov | { "bool": true } |
Booleov je eksplicitni tip u JSON-u i može se izravno pretvoriti. | Booleov( ParseJSON("{ ""bool"": true }").bool ) |
| Boja | { "color": "#102030" }{ "r": 255, "g": 128, "b": 0, "a": 0.5 } |
U JSON-u nema vrste boja. Vrijednosti boja mogu se stvoriti iz RGBA cijelih brojeva ili heksadecimalnih nizova. |
ColorValue( ParseJSON( "{ ""color"": ""#102030"" }" ).color ) With( { uo: ParseJSON( "{ ""r"": 255, ""g"": 128, ""b": 0, ""a": 0.5 }" ) } , RGBA( Value( uo.r ), Value( uo.g ), Value( uo.b ), Value( uo.a ) ) |
| Valuta, broj | { "numbervalue": 123.5 } |
Brojevi su predstavljeni izravno u JSON-u s točkom ( . ) kao decimalnim razdjelnikom. | Value( ParseJSON("{ ""numbervalue"": 123.5 }"). numbervalue ) |
| Datum, datum i vrijeme, vrijeme | { "start": "2022-05-10" }{ "start": "23:12:49.000" } |
JSON nema vrstu datuma ili vremena pa može predstavljati samo datume i vremena kao nizove. Dinamična vrijednost može se izravno pretvoriti iz niza u obliku ISO 8601 u datum, vrijeme ili vrijeme datuma. Za ostale formate, naprije pretvorite JSON polje u tekst s pomoću funkcije Text(), a zatim koristite funkciju DateValue(), TimeValue() or DateTimeValue() koja će prema zadanim postavkama koristiti jezik trenutačnih korisničkih postavki. |
DateValue( ParseJSON("{ ""appointment"": ""2022-05-10"" }"). appointment ) DateValue( Text( ParseJSON("{ ""appointment"": ""5. svibnja 2022."" }"). obveza ) ) |
| GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSON nema vrstu podataka za GUI-ove pa se mogu predstaviti samo kao nizovi. | GUID( ParseJSON("{ ""id"": ""123e4567-e89b-12d3-a456-426655440000"" }"). id ) |
| Hiperveza, slika, mediji | { "URI": "https://northwindtraders.com/logo.jpg" } |
Ove vrste podataka ubrajaju se u tekstne vrste podataka i mogu se pretvoriti u tekst, a zatim upotrijebiti u jeziku Power Apps. | Text( ParseJSON("{ ""URI"": ""https://northwindtraders.com/logo.jpg"" }"). URI – 1000000 |
| Mogućnost odabira | { "status": 1 }{ "status": "Closed" } |
Odabiri se predstavljaju kao lokalizirani nizovi, potkrijepljeni brojem. Funkcija JSON() serijalizira izbor na svoj broj podloge. Ne postoji izravna pretvorba broja ili niza u izbor, ali funkcije Switch() ili If() mogu se koristiti za tekstualnu ili brojčanu vrijednost. | Switch( Value( ParseJSON( "{ ""status"": 1 }" ).status ), 0, Status.Open, 1, Status.Closed ) |
| Zapis | { "field": "value" } |
Nema izravne pretvorbe iz JSON objekta u strukturu zapisa, ali pojedinačna se polja mogu dohvatiti iz dinamičke vrijednosti radi formiranja zapisa. | { polje: Text( ParseJSON( "{ ""field"": ""value"" }" ).field ) } |
| Referenca zapisa | N/D | Reference zapisa jedinstvene su za izvore podataka i ne mogu se serijalizirati ili deserijalizirati. Vrijednosti polja koje predstavljaju jedinstvene ključeve mogu se koristiti u JSON-u za identifikaciju zapisa koji se zatim mogu tražiti. | N/D |
| Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ][1, 2, 3] |
JSON može sadržavati nizove koji se mogu pretvoriti u tablice. Te vrijednosti mogu biti nizovi zapisa ili nizovi vrijednosti koji su zapravo tablice s jednim stupcem. ParseJSON() polja se mogu pretvoriti samo u tablicu s jednim stupcem dinamičnih vrijednosti i mogu se koristiti kao takve ili pretvoriti u utipkane tablice zapisa pomoću funkcije ForAll(). | ForAll( Table( ParseJSON( "[ { ""id"": 1, ""name"": ""one"" }, { ""id"": 2, ""name""": ""two"" } ]" ) ), { id: Value(ThisRecord.Value.id), name: Text(ThisRecord.Value.name) } ) |
| SMS | { "stringField": "this is text" } |
Tekst je eksplicitni tip u JSON-u i može se izravno pretvoriti. | Text( ParseJSON( "{ ""stringField"": ""this is text"" }"). stringField ) |
| Dvije mogućnosti | { "available": true }{ "available": "Yes" } |
Dvije su opcije predstavljene kao lokalizirani nizovi, potkrijepljeni Booleovom vrijednosti. Funkcija JSON() serijalizira dvije mogućnosti u odnosu na svoju booleovu vrijednost. Ne postoji izravna pretvorba iz Booleovog broja ili niza u dvije opcije, ali funkcije Switch() ili If() mogu se koristiti za tekstualnu, brojčanu ili Booleovu vrijednost. | Switch( Boolean( ParseJSON( "{ ""available"": true }" ).available ), false, Availability.No, true, Availability.Yes ) |
Primjeri
Pristup vrijednostima polja
S obzirom na sljedeći JSON niz u varijabli pod nazivom JsonString
{ "parent": { "child": "text value" }, "number": 567 }
- Sljedeća formula vraća tekst
text value:Text( ParseJSON( JsonString ).parent.child ) - Sljedeća formula vraća broj
567:Value( ParseJSON( JsonString ).number )
U slučaju da se naziv polja sastoji od nevažećeg naziva identifikatora, nazive polja možete staviti u jednostruke navodnike.
S obzirom na sljedeći JSON niz u varijabli pod nazivom JsonString
{ "0": { "child-field": "text value" } }
- Sljedeća formula vraća tekst
text value:Text( ParseJSON( JsonString ).'0'.'child-field' )
Prazne varijable
S obzirom na sljedeći JSON niz u varijabli pod nazivom JsonString
{ "text": "text value" , "number": 567, "empty": null }
- Pokušaj pristupa nepostojećim poljima vraća Blank(). Sljedeća formula vraća
true:IsBlank( Text( ParseJSON( JsonString ).parent.child ) ) - JSON
nullvrijednosti smatraju se Blank(). Sljedeća formula vraćatrue:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Jednostavni nizovi
S obzirom na sljedeći JSON niz u varijabli pod nazivom JsonString
{ "array": [1, 2, 3] }
- Pristup drugom broju u tablici s jednim stupcem dinamičkih vrijednosti polja i pretvaranje u broj pomoću funkcije Value() vraća sljedeće
2:Value( Index( ParseJSON( JsonString ).array, 2 ) ) - Pretvaranje tablice s jednim stupcem dinamičkih vrijednosti u polju polja u tablicu brojeva s jednim stupcem
{ Value: 1 }, { Value: 2 }, { Value: 3 }:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Nizovi zapisa
S obzirom na sljedeći JSON niz u varijabli pod nazivom JsonString
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Pretvaranje u vrstu tablice zapisa izravno pomoću funkcije ForAll()
ThisRecord.[fieldname]može se izvršiti pomoću pristupa dinamičnim poljima i njihovo pretvaranje u određene vrste:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Niz do tablice
- Pretvaranje dinamičkih vrijednosti u tablicu pomoću funkcije Table() rezultira tablicom s jednim stupcem dinamičnih vrijednosti. Objektu zatim treba pristupiti pomoću
Value(jednog) stupca i pretvoriti ga u tipove kao što je prethodno objašnjeno.
S obzirom na sljedeći JSON niz u varijabli pod nazivom JsonString
{ "array": [1, 2, 3] }
Tablica() vraća tablicu s jednim stupcem dinamičkih vrijednosti s vrijednošću od jednog stupca za broj u polju...
Set(untypedTable, Table( ParseJSON( JsonString ).array ));
Value( Index(untypedTable, 1).Value.Value )
```
Given the following JSON string in a variable named `JsonString`
```JSON
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Table() vraća tablicu s jednim stupcem dinamičkih vrijednosti koja predstavlja svaki json objekt u polju.
Set(untypedTable, Table( ParseJSON( JsonString ).array ) );
Text( Index(untypedTable, 1).Value.name )