Dijeli putem


JSON funkcija

Odnosi se na: Canvas apps Copilot Studio Model-driven apps Power Platform CLI Dataverse functions Power Pages

Generira tekstni JSON niz za tablicu, zapis ili vrijednost.

Opis

Funkcija JSON vraća prikaz strukture podataka u obliku teksta (JavaScript Object NotationJSON) tako da je prikladna za pohranu ili prijenos preko mreže. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf a IETF RFC 8259 opisuje format, koji naš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
Booleova točno ili netočno. true
Boja 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"
DatumVrijeme 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"
Slika, Mediji Ako je naveden JSONFormat.IncludeBinaryData , medijske datoteke kodiraju se 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
Vrijeme 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 }
Stol 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”. Upotrijebite mogućnost JSONFormat.FlattenValueTables da biste uklonili zapis za tablice s jednim stupcem sa stupcem pod nazivom Vrijednost. [ { "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 formata ako navedete &operator .

Numerička vrijednost JSONFormat Opis
JSONFormat.Compact Zadano. Izlaz je što kompaktniji, bez dodanih razmaka ili novih redaka.
JSONFormat.FlattenValueTables Kao tablica vrijednosti, [1,2,3] notacija rezultira tablicom koja sadrži zapise u kojima svaki zapis ima jedan stupac vrijednosti . U JSON, ta ista notacija predstavlja polje od tri broja. Da bi se olakšala interoperabilnost između njih, ovom se mogućnošću tablica dodatka Power Fx Value JSON stisne na prijateljsko polje, a ne niz zapisa.
JSONFormat.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.
JSONFormat.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.
JSONFormat.IgnoreBinaryData Rezultat ne sadrži stupce slika, video i audioisječaka. Ako ne navedete ni JSONFormat.IncludeBinaryData ni JSONFormat.IgnoreBinaryData, funkcija će generirati pogrešku ako naiđe na binarne podatke.
JSONFormat.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 JSON da može biti i memorija i računalni zahtjevni rad, tu funkciju možete koristiti samo u funkcijama ponašanja. Rezultat možete snimiti u varijablu JSONkoju zatim možete 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( DataStructure [, Format ] )

  • DataStructure – obavezno. Struktura podataka u koju će se pretvoriti JSON. Tablice, zapisi i primitivne vrijednosti su podržane, proizvoljno ugniježđene.
  • Format - Nije obavezno. JSONFormatenumeracija vrijednost. Zadana vrijednost je JSONFormat.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 kolekciju možete prikazati tako da odaberete Postavke>Buduće značajke>Omogući prikaz rezultata trake s formulama, odabirom imena kolekcije na traci formula, a zatim odabirom strelice prema dolje pored naziva kolekcije u traci formule.

    Zbirka u prikazu rezultata trake 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 prikaz JSON 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 JSON funkcija snimila.

    "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
    

Tablice vrijednosti

Ova formula:

JSON( [1,2,3] )

Stvara tekstualni niz [{"Value":1},{"Value":2},{"Value":3}].

Ista formula s mogućnošću JSONFormat.FlattenValueTables:

JSON( [1,2,3], JSONFormat.FlattenValueTables )

Stvara tekstni niz [1,2,3].

Imajte na umu da mogućnost FlattenValueTables JSON ne utječe na korištenje zbirki CityPopulations ili CitiesByCountry jer te tablice nisu tablice Vrijednosti. Tablica vrijednosti ima jedan stupac i mora se zvati "Vrijednost".