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

  1. 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" ) )
    
  2. 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.

    Zbirka CitiesByCountry.

    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.

    Zbirka u prikazu rezultata na traci za formule.

  3. 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.

  4. Odaberite gumb dok držite pritisnutu tipku Alt.

  5. Umetnite kontrolu Label i postavite njezino svojstvo Text na ovu varijablu.

    CitiesByCountryJSON
    

    Oznaka 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"}]
    
  6. Promijenite formulu drugog gumba kako biste poboljšali čitljivost rezultata.

    Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
    
  7. 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

  1. Dodajte kontrolu Image.

    Ova kontrola sa sobom donosi SampleImage.

  2. Dodajte kontrolu Button i postavite njezino svojstvo OnSelect na sljedeću formulu.

    Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
    
  3. Odaberite gumb dok držite pritisnutu tipku Alt.

  4. Dodajte neku oznaku i postavite njezino svojstvo Text na ovu varijablu.

    ImageJSON
    
  5. Promijenite 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+"