JSON-függvény
A következőkre vonatkozik: Vászonalapú alkalmazások
Modellvezérelt alkalmazások
Power Pages
JSON formátumú szöveges sztringet hoz létre egy táblázathoz, egy rekordhoz vagy egy értékhez.
Ismertetés
A JSON függvény az adatstruktúra JavaScript Object Notation (JSON) ábrázolását adja vissza szövegként, így alkalmas a hálózaton tárolásra vagy továbbításra. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf és az IETF RFC 8259 leírja a formátumot, amelyet széles körben használnak a JavaScript és más programozási nyelvek.
A vászonalapú alkalmazások támogatják azokat az adattípusokat, amelyeket ez a táblázat felsorol a szöveges ábrázolásra vonatkozó részletekkel együtt:
Adattípus | Ismertetés | Eredmény példája |
---|---|---|
logikai | igaz vagy hamis. | true |
Szín | A szín 8 jegyű hexadecimális ábrázolását tartalmazó karakterlánc. Ez a reprezentációs formátum #rrggbbaa, ahol rr a piros összetevő, a gg a zöld, a bb a kék, az aa pedig az alfacsatorna. Az alfa csatorna esetében a 00 teljesen átlátszó, és az ff teljesen átlátszatlan. A karakterláncot átadhatja a ColorValue függvénynek. | "#102030ff" |
Valuta | A felhasználó nyelvének megfelelő decimális elválasztót használó szám. Szükség esetén tudományos jelölést kell használni. | 1.345 |
Dátum | A dátumot tartalmazó karakterlánc ISO 8601 éééé-hh-nn formátumban. | "2019-03-31" |
DateTime | ISO 8601 dátumot/időpontot tartalmazó karakterlánc. A dátum-és időértékek UTC-ben vannak, ahogy a „Z” végződés jelzi. | "2019-03-31T22:32:06.822Z" |
GUID | A GUID-értéket tartalmazó karakterlánc. A betűk kisbetűsek. | "751b58ac-380e-4a04-a925-9f375995cc40" |
Kép, média | Ha a JSONFormat.IncludeBinaryData meg van adva, a médiafájlok sztringben vannak kódolva. A http: vagy https: URL-sémát használó webhivatkozások nem módosulnak. A memóriában lévő bináris adatokra mutató hivatkozások az "data:mimetype;base64,..." formátumban vannak kódolva. A memóriában tárolt adatok olyan képeket tartalmaznak, amelyeket a felhasználók a Fényképezőgép vezérlőjével és más hivatkozásokkal az appres: és blob: URL sémákkal rögzítenek. | "data:image/jpeg;base64,/9j/4AA..." |
Szám | A felhasználó nyelvének megfelelő decimális elválasztót használó szám. Szükség esetén tudományos jelölést kell használni. | 1.345 |
értékkészlet | A választási lehetőség numerikus értéke, nem a megjelenítéshez használt címke. A numerikus értéket van használva, mert az nyelvtől független. | 1001 |
Idő | ISO 8601 óó:pp:mp.fff formátumú karakterlánc. | "23:12:49.000" |
Rekord | Vesszővel tagolt felsorolás, { és } a mezők és értékekeik között. Ez a jelölés hasonlít a vászonalapú alkalmazások bejegyzéseihez, de a név mindig dupla idézőjelek között van. Ez a formátum nem támogatja a sok-az-egyhez kapcsolatok alapuló rekordokat. | { "First Name": "Fred", "Age": 21 } |
Asztal | Vesszővel tagolt felsorolás ; [ és ] a bejegyzések között. Ez a formátum nem támogatja az egy-a-sokhoz kapcsolatokon alapuló táblákat. A JSONFormat.FlattenValueTables beállítással eltávolíthatja az egyoszlopos táblák rekordját az Érték nevűoszloppal. | [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ] |
Két lehetőség | A kétlehetőség logikai értéke, igaz vagy hamis, nem a megjelenítéshez használt címke. Logikai érték van használva, mert az nyelvtől független. | false |
Hiperhivatkozás, szöveg | Karakterlánc idézőjelek között. A függvény kilép a beágyazott dupla idézőjelek fordított perjellel esetében, lecseréli a sortöréseket egy „\n” karakterrel, és elvégzi a standard JavaScript-cseréket. | "This is a string." |
A nem támogatott és a bináris adattípusok kezelési módjának meghatározásához adjon meg egy nem kötelező Formátum argumentumot. Alapértelmezés szerint a kimenet a lehető legtömörebb a szükségtelen szóközök és sortörések nélkül, a nem támogatott adattípusok és a bináris adatok nem engedélyezettek. Több formátumot is kombinálhat, ha megadja a & operátor.
JSONFormat felsorolása | Description |
---|---|
JSONFormat.Compact | Alapértelmezett. A kimenet a lehető legkompaktabb, hozzáadott szóközök vagy sortörések nélkül. |
JSONFormat.FlattenValueTables |
Értéktáblaként a [1,2,3] jelölés olyan rekordokat tartalmazó táblát eredményez, amelyekben minden rekord egyetlen Érték oszloppal rendelkezik. A JSON-ban ugyanez a jelölés három számból álló tömböt jelöl. A kettő közötti együttműködés megkönnyítése érdekében ez a beállítás rekordtömb Power Fx helyett JSON-barát tömbbe simítja a Value táblát. |
JSONFormat.IndentFour | Az olvashatóság javítása érdekében a kimenet egy sortörést tartalmaz minden oszlophoz és beágyazási szinthez, és az egyes behúzási szintekhez négy szóközt használ. |
JSONFormat.IncludeBinaryData | Az eredmény tartalmazza a kép-, videó- és audioklipek oszlopokat. Ez a formátum jelentősen növelheti az eredmény méretét, és rontja az alkalmazás teljesítményét. |
JSONFormat.IgnoreBinaryData | Az eredmény nem tartalmazza a kép-, videó- és audioklipek oszlopokat. Ha sem a JSONFormat.IncludeBinaryData , sem a JSONFormat.IgnoreBinaryData értéketnem adja meg, a függvény hibát jelez, ha bináris adatokkal találkozik. |
JSONFormat.IgnoreUnsupportedTypes | A nem támogatott adattípusok megengedettek, de az eredmény nem tartalmazza azokat. A nem támogatott adattípusok alapértelmezés szerint hibát eredményeznek. |
A ShowColumns és a DropColumns függvények segítségével szabályozhatja, hogy az eredmény mely adatokat tartalmazza, és hogy el legyenek távolítva a nem támogatott adattípusok.
Mivel a JSON lehet memória- és számításigényes is lehet, ezt a funkciót csak a viselkedési képletekben használhatja. A JSON eredményét egy változóba rögzítheti, amit használhat adatfolyamban.
Ha egy oszlophoz megjelenítendő név és logikai név is tartozik, akkor az eredmény a logikai nevet tartalmazza. A megjelenítendő nevek az alkalmazás felhasználójának nyelvét tükrözik, ezért nem megfelelőek a közös szolgáltatáshoz való adatátvitelre.
Szintaxis
JSON( DataStructure [, Format ] )
- DataStructure – Kötelező. A JSON konvertálásához tartozó adatstruktúra. A táblázatok, a bejegyzések és a primitív értékek támogatottak, önkényesen beágyazottan.
- Formátum - Nem kötelező. JSONFormat felsorolás értéket. Az alapértelmezett érték a JSONFormat.Compact, amely nem ad hozzá új sorokat vagy szóközöket, és blokkolja a bináris adatokat és a nem támogatott oszlopokat.
Példák
Hierarchikus adatok
Adjon hozzá egy Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg ezt a képletet.
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" ) )
Az Alt billentyűt lenyomva tartva válassza ki a gombot.
A CitiesByCountry gyűjtemény ezzel az adatstruktúrával jön létre, amelyet a Fájl menü Gyűjtemények pontjának kiválasztásával, majd a gyűjtemény nevének kiválasztásával tud megjeleníteni.
Ezt a gyűjteményt úgy is megtekintheti, ha kiválasztja a Beállítások>Hamarosan elérhető funkciók>Szerkesztőléc eredménye megtekintésének engedélyezése lehetőséget, kijelöli a gyűjtemény nevét a szerkesztőlécben, majd a szerkesztőléc alatt a gyűjtemény neve melletti, lefelé mutató nyílra kattint.
Szúrjon be egy másik gombot és az OnSelect tulajdonság értékeként adja meg ezt a képletet:
Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )
Ez a képlet a CitiesByCountryJSON globális változót állítja be a CitiesByCountry JSON megjelenítéséhez.
Az Alt billentyűt lenyomva tartva válassza ki a gombot.
Szúrjon be egy Címke vezérlőelemet, és a Szöveg tulajdonságát állítsa erre a változóra.
CitiesByCountryJSON
A címke megjeleníti ezt az eredményt, mindezt egyetlen, szóközök nélküli sorban, amely a hálózaton keresztüli átvitelre alkalmas:
[ { "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" } ]
Módosítsa a második gomb képletét, hogy a kimenet olvashatóbb legyen.
Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
Az Alt billentyűt lenyomva tartva válassza ki a második gombot.
A címke olvashatóbb eredményt jelenít meg.
[ { "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" } ]
A képek és a média Base64-ben
Adjon hozzá egy Kép vezérlőt.
Ez a vezérlő egy SampleImage elemet hoz magával.
Adjon hozzá egy Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg a következő képletet.
Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
Az Alt billentyűt lenyomva tartva válassza ki a gombot.
Adjon hozzá egy címkét, majd állítsa be a Szöveg tulajdonságát erre a változóra.
ImageJSON
Méretezze át a vezérlőelemet, és csökkentse a betűméretet az eredmény nagy részének megjelenítéséhez.
A címke megjeleníti azt a szöveges karakterláncot, amelyet a JSON függvény rögzített.
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
Értéktáblák
Ez a képlet:
JSON( [1,2,3] )
Létrehozza a szöveges karakterláncot [{"Value":1},{"Value":2},{"Value":3}].
Ugyanez a képlet a JSONFormat.FlattenValueTables beállítással:
JSON( [1,2,3], JSONFormat.FlattenValueTables )
Létrehozza a szöveges karakterláncot [1,2,3].
Vegye figyelembe, hogy a FlattenValueTables beállításnak nincs hatása, ha JSON-t használ a CityPopulations vagy a CitiesByCountry gyűjteményekkel, mivel ezek a táblák nem értéktáblák. Az Érték tábla egyetlen oszlopból áll, és "Érték" névvel kell ellátni.