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
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" ) )
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.
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ä.
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.
Pidä Alt-näppäintä painettuna ja valitse painike.
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" } ]
Muuta toisen painikkeen kaavaa siten, että tulos on helppolukuinen.
Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
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
Lisää Image-ohjausobjekti.
Tämä ohjausobjekti tuo mukanaan kohteen SampleImage.
Lisää Button-ohjausobjekti ja määritä sen OnSelect-ominaisuudeksi seuraava kaava.
Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
Pidä Alt-näppäintä painettuna ja valitse painike.
Lisää otsikko ja aseta sen Text-ominaisuudeksi tämä muuttuja.
ImageJSON
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.