Jaa


JSON funktio

Koskee seuraavia: Pohjaan perustuvien sovellusten Copilot Studion mallipohjaiset sovellukset , Power Platform CLI Dataverse -funktiot Power Pages

JSON Luo tekstimerkkijonon taulukolle, tietueelle tai arvolle.

Kuvaus

Funktio JSON palauttaa tietorakenteen JavaScript Object Notation (JSON) -esityksen tekstinä niin, että se soveltuu verkon kautta tallentamiseen tai lähettämiseen. [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 Kuvaus
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. Kohteessa JSONsama merkintätapaa edustaa kolmen numeron matriisia. Näiden kahden yhteentoimivuuden helpottamiseksi tämä asetus tasoittaa Power Fx -arvotaulukon JSON ystävälliseen matriisiin 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 se voi olla sekä muisti- että käsittelytehokas, voit käyttää tätä funktiota vain toimintafunktioissa. Voit tallentaa tuloksen kohteesta JSONmuuttujaan, jota voit sitten käyttää tiedonkulussa.

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( DataStructure [, Format ] )

  • DataStructure – Pakollinen. Muunnettava JSONtietorakenne. 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ää yleiset muuttujat KaupungitMaittainJSONJSONKaupungitMaittain-esitykseen.

  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ää merkkijonon, jonka funktio tallensi JSON .

    "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].

Huomaa, että FlattenValueTables-asetuksella ei ole vaikutusta käytettäessä JSONKaupunkienVäkiluvut - tai KaupungitMaittain-kokoelmia , koska nämä taulukot eivät ole Arvo-taulukoita. Arvotaulukossa on yksi sarake, jonka nimen on oltava Arvo.