Funkcija JSON u aplikaciji Power Apps
Stvara JSON tekstni niz za tablicu, zapis ili vrijednost.
Opis
Funkcija JSON vraća JavaScript Object Notation (JSON) reprezentaciju strukture podataka u vidu teksta pogodnog za pohranu ili prijenos preko mreže. Norme ECMA-404 i IETF RFC 8259 opisuju ovaj oblik koji široko koriste JavaScript i drugi programski jezici.
Aplikacije radnog područja podržavaju vrste podataka koje ova tablica navodi zajedno s detaljima o tome kako predstavljaju tekst:
| Vrsta podataka | Opis | Primjer rezultata |
|---|---|---|
| Booleov | true ili false. | true |
| Color | Niz koji sadrži 8-znamenkastu heksadecimalnu oznaku boje. Ova oznaka ima oblik #rrggbbaa, gdje je rr crvena komponenta, gg zelena, bb plava, a aa je alfa kanal. Kod alfa kanala, 00 potpuno je transparentno, a ff potpuno neprozirno. Možete proslijediti niz funkciji ColorValue. | "#102030ff" |
| Valuta | Broj koji koristi odgovarajući decimalni razdjelnik za jezik korisnika. Po potrebi se koristi znanstvena notacija. | 1.345 |
| Datum | Niz koji sadrži datum u obliku ISO 8601 gggg-mm-dd. | "2019-03-31" |
| DateTime | Niz koji sadrži datum/vrijeme prema ISO 8601. Vrijednosti datum/vrijeme su u UTC, kao što označava završetak „Z”. | "2019-03-31T22:32:06.822Z" |
| GUID | Niz koji sadrži GUID vrijednost. Slova su mala. | "751b58ac-380e-4a04-a925-9f375995cc40" |
| Image, Media | Ako je naveden IncludeBinaryData, medijske datoteke kodirane su u nizu. Web-reference koje koriste URL shemu http: ili https: se ne mijenjaju. Reference na binarne podatke u memoriji kodirane su u obliku „data:mimetype;base64,...”. Podatci u memoriji mogu biti slike koje korisnici snimaju koristeći kontrolu Camera i bilo koje druge reference s URL shemama appres: i blob:. | "data:image/jpeg;base64,/9j/4AA..." |
| Broj | Broj koji koristi odgovarajući decimalni razdjelnik za jezik korisnika. Po potrebi se koristi znanstvena notacija. | 1.345 |
| Skup mogućnosti | Numerička vrijednost izbora, a ne oznaka koja se koristi za prikaz. Numerička vrijednost koristi se jer ne ovisi o jeziku. | 1001 |
| Time | Niz koji sadrži oblik hh:mm:ss.fff prema ISO 8601. | "23:12:49.000" |
| Zapis | Popis polja i njihovih vrijednosti, razgraničen zarezima, između znakova { i }. Ova notacija podsjeća na zapise u aplikacijama radnog područja, ali naziv je uvijek između dvostrukih navodnika. Ovaj oblik ne podržava zapise koji se temelje na odnosima tipa „više na jedan”. | { "First Name": "Fred", "Age": 21 } |
| Table | Popis zapisa, razgraničen zarezima, između znakova [ i ]. Ovaj oblik ne podržava tablice koje se temelje na odnosima tipa „jedan na više”. | [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ] |
| Dvije mogućnosti | Booleova vrijednost dvije opcije, true ili false, a ne oznaka koja se koristi za prikaz. Booleova vrijednost koristi se jer ne ovisi o jeziku. | false |
| Hiperveza, tekst | Niz između dvostrukih navodnika. Ova funkcija obilježava ugrađene dvostruke navodnike obrnutim kosim crtama, znakove novog retka zamjenjuje s „\n” te provodi druge standardne JavaScript zamjene. | "This is a string." |
Navedite neobvezni argument Format kako biste kontrolirali čitljivost rezultata i način rukovanja s nepodržanim i binarnim vrstama podataka. Prema zadanim postavkama, izlaz je što kompaktniji, bez nepotrebnih razmaka ili novih redaka, a nepodržane vrste podataka i binarni podatci nisu dopušteni. Možete kombinirati više oblika ako navedete operator &.
| Numerička vrijednost JSONFormat | Opis |
|---|---|
| Kompaktno | Zadano. Izlaz je što kompaktniji, bez dodanih razmaka ili novih redaka. |
| IndentFour | Kako bi se poboljšala čitljivost, izlaz sadrži novi redak za svaki stupac i razinu gniježđenja i koristi četiri razmaka za svaku razinu uvlake. |
| IncludeBinaryData | Rezultat sadrži stupce slika, video i audioisječaka. Ovaj oblik može drastično povećati veličinu rezultata i pogoršati performanse vaše aplikacije. |
| IgnoreBinaryData | Rezultat ne sadrži stupce slika, video i audioisječaka. Ako ne navedete ni IncludeBinaryData ni IgnoreBinaryData, ova funkcija vraća pogrešku ako naiđe na binarne podatke. |
| IgnoreUnsupportedTypes | Nepodržane vrste podataka su dopuštene, ali rezultat ih ne sadrži. Po zadanim postavkama, nepodržane vrste podataka vraćaju pogrešku. |
Upotrijebite funkcije ShowColumns i DropColumns kako biste kontrolirali koje podatke rezultat sadrži i uklonili nepodržane vrste podataka.
Budući da JSON može intenzivno koristiti i memoriju i procesor, ovu funkciju možete koristiti samo u funkcijama ponašanja. Rezultat možete zabilježiti iz JSON u neku varijablu, koju možete dalje koristiti u tijeku podataka.
Ako neki stupac sadrži i zaslonsko i logičko ime, rezultat sadrži logičko ime. Zaslonska imena odražavaju jezik korisnika aplikacije i stoga nisu prikladna za prijenos podataka na zajedničku uslugu.
Sintaksa
JSON( podatkovna struktura [, format ] )
- Podatkovna struktura – Required. Podatkovna struktura koja se pretvara u JSON. Tablice, zapisi i primitivne vrijednosti su podržane, proizvoljno ugniježđene.
- Format – Neobvezno. Numerička vrijednost JSONFormat. Zadana vrijednost je Compact, koja ne dodaje nove retke ili razmake i blokira binarne podatke i nepodržane stupce.
Primjeri
Hijerarhijski podatci
Umetnite kontrolu Button i postavite njezino svojstvo OnSelect na ovu formulu.
ClearCollect( CityPopulations, { City: "London", Country: "United Kingdom", Population: 8615000 }, { City: "Berlin", Country: "Germany", Population: 3562000 }, { City: "Madrid", Country: "Spain", Population: 3165000 }, { City: "Hamburg", Country: "Germany", Population: 1760000 }, { City: "Barcelona", Country: "Spain", Population: 1602000 }, { City: "Munich", Country: "Germany", Population: 1494000 } ); ClearCollect( CitiesByCountry, GroupBy( CityPopulations, "Country", "Cities" ) )Odaberite gumb dok držite pritisnutu tipku Alt.
Zbirka CitiesByCountry stvara se s ovom strukturom podataka koju možete pokazati odabirom Zbirke u izborniku Datoteka, a zatim odabirom naziva te zbirke.

Ovu zbirku možete prikazati i tako da odaberete Postavke > Nadolazeće značajke > Omogućite prikaz rezultata trake formule, odaberete naziv zbirke na traci formule, a zatim odaberete strelicu dolje pokraj naziva zbirke ispod trake formule.

Umetnite neki drugi gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )Ova formula postavlja globalnu varijablu CitiesByCountryJSON na JSON predstavljanje za CitiesByCountry.
Odaberite gumb dok držite pritisnutu tipku Alt.
Umetnite kontrolu Label i postavite njezino svojstvo Text na ovu varijablu.
CitiesByCountryJSONOznaka prikazuje ovaj rezultat, sve u jednom retku bez razmaka, pogodno za prijenos preko mreže:
[{"Cities":[{"City":"London","Population":8615000}],"Country":"United Kingdom"},{"Cities":[{"City":"Berlin","Population":3562000},{"City":"Hamburg","Population":1760000},{"City":"Munich","Population":1494000}],"Country":"Germany"},{"Cities":[{"City":"Madrid","Population":3165000},{"City":"Barcelona","Population":1602000}],"Country":"Spain"}]Promijenite formulu drugog gumba kako biste poboljšali čitljivost rezultata.
Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))Odaberite drugi gumb dok držite pritisnutu tipku Alt.
Oznaka pokazuje čitljiviji rezultat.
[ { "Cities": [ { "City": "London", "Population": 8615000 } ], "Country": "United Kingdom" }, { "Cities": [ { "City": "Berlin", "Population": 3562000 }, { "City": "Hamburg", "Population": 1760000 }, { "City": "Munich", "Population": 1494000 } ], "Country": "Germany" }, { "Cities": [ { "City": "Madrid", "Population": 3165000 }, { "City": "Barcelona", "Population": 1602000 } ], "Country": "Spain" } ]
Slike i mediji u base64
Dodajte kontrolu Image.
Ova kontrola sa sobom donosi SampleImage.
Dodajte kontrolu Button i postavite njezino svojstvo OnSelect na sljedeću formulu.
Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )Odaberite gumb dok držite pritisnutu tipku Alt.
Dodajte neku oznaku i postavite njezino svojstvo Text na ovu varijablu.
ImageJSONPromijenite kontrolu i smanjite veličinu fonta prema potrebi kako biste pokazali najveći dio rezultata.
Oznaka prikazuje tekstni niz koji je zabilježila funkcija JSON.
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"