Jaa


JSON-toiminto

Koskee seuraavia: pohjaan perustuvat sovellukset Mallipohjaiset sovellukset Power Pages

Muodostaa JSON-tekstimerkkijonon taulukolle, tietueelle tai arvolle.

Kuvaus

JSON-funktio palauttaa tietorakenteen JavaScript Object Notation (JSON) -esityksen tekstinä, jotta se voidaan tallentaa tai välittää verkon kautta. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf ja IETF RFC 8259 kuvaavat muotoa, jota JavaScript ja muut ohjelmointikielet käyttävät laajalti.

Kaaviosovellukset tukevat tietotyyppejä, jotka tässä taulukossa on lueteltu niiden tekstimuodosta:

Tietotyyppi Kuvaus Tulosesimerkki
totuusarvo Tosi tai epätosi. true
Väri Merkkijono, joka sisältää värin 8-numeroisen heksadesimaaliesityksen. Tämä esitys tulee muodossa #rrggbbaa, jossa rr on punainen komponentti, gg on vihreä, bb on sininen, ja aa on alfakanava. Alfakanavalla 00 on täysin läpinäkyvä, ja ff on täysin läpinäkymätön. Voit siirtää merkkijonon ColorValue-funktioon. "#102030ff"
Valuutta Numero, joka käyttää käyttäjän kielelle soveltuvaa desimaalierotinta. Tieteellistä merkintää käytetään tarvittaessa. 1.345
Päivämäärä Merkki jono, joka sisältää päivämäärän ISO 8601 yyyy-mm-dd -muodossa. "2019-03-31"
DateTime Merkkijono, joka sisältää ISO 8601 -päivämäärän/-ajan. Päivämäärä- ja aika-arvot ovat UTC-muodossa, kuten loppu "Z" osoittaa. "2019-03-31T22:32:06.822Z"
GUID Merkkijono, joka sisältää GUID-arvon. Kirjaimet ovat pieniä kirjaimia. "751b58ac-380e-4a04-a925-9f375995cc40"
Kuva, Media Jos JSONFormat.IncludeBinaryData on määritetty, mediatiedostot koodataan merkkijonoon. http: tai https: URL-osoitemallia käyttäviä www-viittauksia ei muuteta. Viittaukset muistissa oleviin binaaritietoihin koodataan muodossa "data:mimetype;base64,...". Muistissa oleviin tietoihin kuuluu kuvia, joita käyttäjät käyttävät Camera-ohjausobjektin ja muiden appress: ja blob: URL-osoitteiden kanssa. "data:image/jpeg;base64,/9j/4AA..."
Numero Numero, joka käyttää käyttäjän kielelle soveltuvaa desimaalierotinta. Tieteellistä merkintää käytetään tarvittaessa. 1.345
asetusjoukko Valinnan numeerinen arvo, ei selite, jota käytetään näytössä. Numeroarvoa käytetään, koska se on kieliriippumaton. 1001
Aika Merkkijono, joka sisältää muodon ISO 8601 hh:mm:ss.fff. "23:12:49.000"
Ennätys Pilkuin eroteltu kenttien ja niiden arvojen luettelo sulkeiden { ja } välissä. Tämä merkitsemistapa muistuttaa tietueita kaaviososvelluksissa, mutta nimi on aina lainausmerkeissä. Tämä muoto ei tue monta-yhteen-suhteisiin perustuvia tietueita. { "First Name": "Fred", "Age": 21 }
Pöytä Tietueiden pilkuilla erotettu luettelo sulkeiden [ ja ] välissä. Tämä muoto ei tue yksi-moneen-suhteisiin perustuvia taulukoita. Käytä JSONFormat.FlattenValueTables-vaihtoehtoa poistaaksesi tietueen yhden sarakkeen taulukoista, joiden sarake on nimeltään Arvo. [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ]
Kaksi vaihtoehtoa Kahden vaihtoehdon totuusarvo, tosi tai epätosi, ei näytössä käytettävä selite. Totuusarvoa käytetään, koska se on kieliriippumaton. false
Hyperlinkki, teksti Merkkijono lainausmerkeissä. Toiminto ohittaa upotetut lainausmerkit kenoviivalla, korvaa rivinvaihdon merkillä "\n" ja tekee muita JavaScript-vakiokorvauksia. "This is a string."

Määritä valinnainen Format-argumentti, joka määrittää tuloksen helppolukuisuuden ja sen, miten tukemattomia ja binaarisia tietotyyppejä käsitellään. Tuloste on oletusarvon mukaan mahdollisimman tiivis ilman turhia välilyöntejä tai rivinvaihtomerkkejä, eikä tietotyyppejä, joita ei tueta, tai binaaritietoja, ei sallita. Voit yhdistää useita muotoja, jos määrität &-operaattorin.

JSONFormat-luettelointi Description
JSONFormat.Kompakti Oletus. Tuotos on mahdollisimman pienikokoinen, eikä siinä ole lisättyjä välilyöntejä eikä rivinvaihtoja.
JSONFormat.FlattenValueTables Arvotaulukkona [1,2,3]-merkinnän tulokset taulukossa, jossa on tietueita, jossa kullakin tietueella on yksi Arvo-sarake. JSON:ssa sama merkintä ilmaisee kolminumeroisen matriisin. Jotta kahdenvälinen toiminta on aiempaa helpompaa, tämä vaihtoehto litistää Power Fx:n arvotaulukon JSON:lle sopivaksi matriisiksi tietuematriisin sijaan.
JSONFormat.SisennysNeljä Luettavuuden parantamiseksi tulosteessa on rivinvaihto- ja sisäkkäisyystasot sekä kullekin sisennystasolle neljä välilyöntiä.
JSONFormat.IncludeBinaryData Tulos sisältää kuva-, video- ja äänileike-sarakkeet. Tämä muoto voi kasvattaa merkittävästi tuloksen kokoa ja heikentää sovelluksen tehokkuutta.
JSONFormat.IgnoreBinaryData Tulos ei sisällä kuva-, video- ja äänileike-sarakkeita. Jos et määritä JSONFormat.IncludeBinaryData- tai JSONFormat.IgnoreBinaryData-parametria, funktio tuottaa virheen, jos se havaitsee binaaritietoja.
JSONFormat.IgnoreUnsupportedTypes Tietotyyppejä, joita ei tueta, sallitaan, mutta tulos ei sisällä niitä. Oletusarvon mukaan ei-tuetut tietolajit tuottavat virheen.

ShowColumns ja DropColumns -toimintojen avulla voit määrittää, mitä tietoja tulos sisältää ja poistaa tietotyyppejä, joita ei tueta.

Koska JSON voi kuluttaa sekä muistia että laskentaa, voit käyttää tätä toimintoa vain käyttäytymistoiminnoissa. Voit siepata tuloksen JSON-funtiosta muuttujaan, jota voit käyttää tietojen työnkulussa.

Jos sarakkeella on sekä näyttönimi että looginen nimi, tuloksena on looginen nimi. Näyttönimet vastaavat sovelluksen käyttäjän kieltä, joten ne eivät sovellu tietojen siirtämiseen yleiseen palveluun.

Syntaksi

JSON( tietorakenne [, muoto ] )

  • DataStructure – Pakollinen. Tietorakenne, joka muunnetaan JSON-muotoon. Taulukot, tietueet ja alkuperäiset arvot ovat tuettuja, mielivaltaisesti sisäkkäisinä.
  • Muoto - valinnainen. JSONFormat luettelointi arvo. Oletus arvo on JSONFormat.Compact, joka ei lisää rivin vaihtoja tai välilyöntejä, ja estää binaaritiedot ja sarakkeet, joita ei tueta.

Esimerkit

Hierarkkiset tiedot

  1. Lisää Button-ohjausobjekti ja määritä sen OnSelect-ominaisuudeksi seuraava kaava.

    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. Pidä Alt-näppäintä painettuna ja valitse painike.

    CitiesByCountrykokoelma luodaan tällä tietorakenteella, jonka voit näyttää valitsemalla Tiedosto-valikosta Kokoelmat ja valitsemalla sitten kokoelman nimen.

    CitiesByCountry-kokoelma.

    Voit näyttää kokoelman myös valitsemalla Asetukset>Tulevat ominaisuudet>Ota käyttöön kaavapalkin tulosnäkymä, valitsemalla kokoelman nimen kaavarivillä ja valitsemalla sitten kokoelman nimen vierestä alanuolen kaavarivillä.

    Kaavarivin tulosnäkymän kokoelma.

  3. Lisää toinen painike ja määritä sen OnSelect-ominaisuudeksi seuraava kaava:

    Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )
    

    Tämä kaava määrittää yleisen muuttujan CitiesByCountryJSON JSON-esityksen kohteelle CitiesByCountry.

  4. Pidä Alt-näppäintä painettuna ja valitse painike.

  5. Lisää Label-ohjausobjekti ja määritä sen Text-ominaisuudeksi seuraava muuttuja.

    CitiesByCountryJSON
    

    Otsikossa näkyy tämä tulos, kaikki yhdellä rivillä ilman välilyöntejä, jotka soveltuvat verkon yli siirtämistä varten:

    [
      {
        "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. Muuta toisen painikkeen kaavaa siten, että tulos on helppolukuinen.

    Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
    
  7. Pidät Alt-näppäintä pohjassa ja valitse toinen painike.

    Selitteessä näkyy helppolukuisempi tulos.

    [
      {
        "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"
      }
    ]
    

Kuvat ja mediasisältö base64-muodossa

  1. Lisää Image-ohjausobjekti.

    Tämä ohjausobjekti tuo mukanaan kohteen SampleImage.

  2. Lisää Button-ohjausobjekti ja määritä sen OnSelect-ominaisuudeksi seuraava kaava.

    Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
    
  3. Pidä Alt-näppäintä painettuna ja valitse painike.

  4. Lisää otsikko ja aseta sen Text-ominaisuudeksi tämä muuttuja.

    ImageJSON
    
  5. Muuta ohjausobjektin kokoa ja pienennä fonttikokoa tarpeen mukaan, jolloin suurin osa tuloksesta näkyy.

    Selite näyttää tekstimerkkijonon, jonka JSON-toiminto tallensi.

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

Arvotaulukot

Tämä kaava:

JSON( [1,2,3] )

tuottaa tekstimerkkijonon [{"Arvo":1},{"Arvo":2},{"Arvo":3}].

Sama kaava JSONFormat.FlattenValueTables-vaihtoehdolla:

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

tuottaa tekstimerkkijonon [1,2,3].

Ota huomioon, että FlattenValueTables-vaihtoehdolla ei ole vaikutusta, kun JSON:ia käytetään CityPopulations- tai CitiesByCountry-kokoelmien kanssa, koska nämä taulukot eivät ole arvotaulukoita. Arvotaulukossa on yksi sarake, jonka nimen on oltava Arvo.