Zdieľať cez


Funkcia JSON

Vzťahuje sa na: Aplikácie plátna Aplikácie Copilot Studio Modelom riadené aplikácie Power Platform CLI Dataverse funkcie Power Pages

Vygeneruje textový JSON reťazec pre tabuľku, záznam alebo hodnotu.

Popis

Funkcia JSON vráti zápis objektu v jazyku JavaScript (JSON) štruktúry údajov ako text, takže je vhodný na ukladanie alebo prenos v sieti. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf a IETF RFC 8259 popisujú formát, ktorý je široko používaný v JavaScript a iných programovacích jazykoch.

Aplikácie plátna podporujú typy údajov, ktoré sú uvedené v tejto tabuľke s podrobnosťami o ich textovom znázornení:

Typ údajov Popis Príklad výsledku
Boolean pravda alebo nepravda. true
Farba Reťazec, ktorý obsahuje 8-ciferné hexadecimálne zobrazenie farby. Táto reprezentácia má formát #rrggbbaa, kde rr je červená zložka, gg je zelená, bb je modrá a aa je alfa kanál. Pre alfa kanál je 00 úplne transparentný a ff úplne nepriehľadný. Reťazec môžete odovzdať do funkcie ColorValue. "#102030ff"
mena Číslo, ktoré používa príslušný desatinný oddeľovač pre jazyk používateľa. V prípade potreby sa používa vedecký zápis. 1.345
Dátum Reťazec obsahujúci dátum vo formáte ISO 8601 rrrr-mm-dd. "2019-03-31"
DateTime Reťazec, ktorý obsahuje dátum a čas podľa normy ISO 8601. Hodnoty dátumu a času sú v UTC, ako naznačuje „Z“ na konci. "2019-03-31T22:32:06.822Z"
GUID Reťazec, ktorý obsahuje hodnotu GUID. Písmená sú malé. "751b58ac-380e-4a04-a925-9f375995cc40"
Obrázok, médiá Ak je zadané JSONFormat.IncludeBinaryData , mediálne súbory sú zakódované do reťazca. Webové odkazy, ktoré používajú schému URL „http:“ alebo „https:“ sa nemenia. Odkazy na binárne údaje v pamäti sú kódované vo formáte "data:mimetype;base64,...". Dáta v pamäti zahŕňajú obrázky, ktoré používatelia zachytávajú pomocou ovládacieho prvku Fotoaparát a akékoľvek ďalšie odkazy so schémami URL „appres:“ a „blob:“. "data:image/jpeg;base64,/9j/4AA..."
číslo Číslo, ktoré používa príslušný desatinný oddeľovač pre jazyk používateľa. V prípade potreby sa používa vedecký zápis. 1.345
množina možností Číselná hodnota výberu, nie označenie, ktoré sa používa na zobrazenie. Číselná hodnota sa používa, pretože je nezávislá od jazyka. 1001
čas Reťazec, ktorý obsahuje formát ISO 8601 hh:mm:ss.fff. "23:12:49.000"
Záznam Zoznam oddelený čiarkami, medzi { a }, polí a ich hodnôt. Tento zápis sa podobá na záznamy v aplikáciách plátna, ale názov je vždy medzi dvojitými úvodzovkami. Tento formát nepodporuje záznamy, ktoré sú založené na vzťahoch mnohé k jednému. { "First Name": "Fred", "Age": 21 }
Tabuľka Zoznam oddelený čiarkami, medzi [ a ], záznamov. Tento formát nepodporuje tabuľky, ktoré sú založené na vzťahoch typu jeden k mnohým. Pomocou možnosti JSONFormat.FlattenValueTables odstráňte záznam pre tabuľky s jedným stĺpcom so stĺpcom s názvom Value. [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ]
Dve možnosti Logická hodnota oboch možností, pravda alebo nepravda, nie štítok, ktorý sa používa na zobrazenie. Logická hodnota sa používa, pretože je nezávislá od jazyka. false
Hypertextový odkaz, text Reťazec medzi dvojitými úvodzovkami. Funkcia sa ukončuje vloženými dvojitými úvodzovkami so spätnou lomkou, nahrádza nové riadky za „\n“ a vykonáva ďalšie štandardné náhrady JavaScript. "This is a string."

Zadajte voliteľný argument Formát na kontrolu toho, ako je výsledok čitateľný a ako sa zaobchádza s nepodporovanými a binárnymi typmi údajov. Výstup je v predvolenom nastavení čo najkompaktnejší bez zbytočných medzier alebo nových riadkov a nepodporované typy údajov a binárne údaje nie sú povolené. Ak zadáte operátor & , môžete kombinovať viacero formátov.

Enumerácia JSONFormat Popis
JSONFormat.Compact Predvolené. Výstup je čo najkompaktnejší bez pridania medzier alebo nových riadkov.
JSONFormat.FlattenValueTables Ako Tabuľka hodnôt, [1,2,3] zápis vedie k tabuľke obsahujúcej záznamy, kde každý záznam má jednu hodnotu stĺpec. V JSONargumente predstavuje ten istý zápis pole s tromi číslami. S cieľom zjednodušiť interoperabilitu medzi týmito dvoma možnosťami zjednoduší táto možnosť tabuľku Hodnôt služby Power Fx na JSON priateľské pole namiesto poľa záznamov.
JSONFormat.IndentFour Na zlepšenie čitateľnosti obsahuje výstup nový riadok pre každý stĺpec a úroveň vnorenia a používa štyri medzery pre každú úroveň odsadenia.
JSONFormat.IncludeBinaryData Výsledkom sú stĺpce obrázkov, videa a zvukových klipov. Tento formát môže dramaticky zväčšiť veľkosť výsledku a znížiť výkonnosť vašej aplikácie.
JSONFormat.IgnoreBinaryData Výsledok neobsahuje stĺpce obrázkov, videa a zvukových klipov. Ak nezadáte ani JSONFormat.IncludeBinaryData ani JSONFormat.IgnoreBinaryData, funkcia vygeneruje chybu, ak narazí na binárne údaje.
JSONFormat.IgnoreUnsupportedTypes Nepodporované typy údajov sú povolené, ale výsledok ich nebude obsahovať. V predvolenom nastavení nepodporované typy údajov spôsobujú chybu.

Funkcie ShowColumns a DropColumns použite na kontrolu, ktoré údaje výsledok obsahuje, a na odstránenie nepodporovaných typov údajov.

Pretože JSON môže byť pamäť aj náročné na výpočet, môžete túto funkciu použiť iba vo funkciách správania. Výsledok môžete zaznamenať z JSONpremennej, ktorú potom môžete použiť v toku údajov.

Ak stĺpec obsahuje zobrazovaný názov aj logický názov, výsledok obsahuje logický názov. Zobrazované názvy odrážajú jazyk používateľa aplikácie, a preto nie sú vhodné na prenos údajov do spoločnej služby.

Syntax

JSON( DataStructure [, Format ] )

  • DataStructure – povinné. Štruktúra údajov, ktorá sa má previesť na JSON. Tabuľky, záznamy a primitívne hodnoty sú podporované, ľubovoľne vnorené.
  • Formát – voliteľné. Hodnota JSONFormat enumerácia. Predvolená hodnota je JSONFormat.Compact, ktorá nepridáva nové riadky ani medzery a blokuje binárne údaje a nepodporované stĺpce.

Príklady

Hierarchické údaje

  1. Vložte ovládací prvok Tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec.

    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. Podržte kláves Alt a vyberte tlačidlo.

    Vytvorí sa kolekcia CitiesByCountry s touto dátovou štruktúrou, ktorú môžete zobraziť výberom možnosti Collections v ponuke File a následným výberom názvu kolekcie.

    Zbierka miest podľa krajiny.

    Túto zbierku môžete tiež zobraziť stlačením možnosti Nastavenia>Pripravované funkcie>Povoliť zobrazenie výsledkov na riadku vzorcov, výberom názvu kolekcie na paneli vzorcov a následným výberom šípky nadol vedľa názvu kolekcie pod panelom vzorcov.

    Kolekcia v zobrazení výsledkov panela vzorcov.

  3. Vložte ďalšie tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:

    Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )
    

    Tento vzorec nastaví globálnu premennú CitiesByCountryJSON na reprezentáciu JSON pre CitiesByCountry.

  4. Podržte kláves Alt a vyberte tlačidlo.

  5. Vložte ovládací prvok Označenie a nastavte jeho vlastnosť Text na túto premennú.

    CitiesByCountryJSON
    

    Označenie ukazuje tento výsledok, všetko na jednom riadku bez medzier, vhodný na prenos v sieti:

    [
      {
        "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. Zmeňte vzorec druhého tlačidla, aby bol výstup čitateľnejší.

    Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
    
  7. Podržte kláves Alt a vyberte druhé tlačidlo.

    Označenie zobrazuje čitateľnejší výsledok.

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

Obrázky a médiá v base64

  1. Pridajte ovládací prvok Obrázok.

    Tento ovládací prvok prináša SampleImage.

  2. Pridajte ovládací prvok Tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec.

    Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
    
  3. Podržte kláves Alt a vyberte tlačidlo.

  4. Pridajte označenie a do jeho vlastnosti Text zadajte túto premennú.

    ImageJSON
    
  5. Zmeňte veľkosť ovládacieho prvku a podľa potreby zmenšite veľkosť písma, aby sa zobrazila väčšina výsledku.

    Označenie zobrazí textový reťazec, ktorý JSON funkcia zachytiť.

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

Tabuľky hodnôt

Tento vzorec:

JSON( [1,2,3] )

Vytvorí textový reťazec [{"Value":1},{"Value":2},{"Hodnota":3}].

Rovnaký vzorec s možnosťou JSONFormat.FlattenValueTables:

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

Vytvorí textový reťazec [1,2,3].

Všimnite si, že možnosť FlattenValueTables nemá žiadny vplyv pri použití JSON s kolekciami CityPopulations alebo CitiesByCountry , pretože tieto tabuľky nie sú tabuľkami Value. Tabuľka hodnôt má jeden stĺpec a musí mať názov "Hodnota".