Deli z drugimi prek


JSON funkcija

Velja za: Canvas apps Copilot Studio Model-driven apps Power Platform CLI Dataverse funkcije Power Pages

Ustvari besedilni JSON niz za tabelo, zapis ali vrednost.

Opis

Funkcija JSON vrne predstavitev podatkovne strukture v obliki zapisa predmeta JavaScript (JSON) kot besedilo, tako da je primerna za shranjevanje ali prenos v omrežju. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf in IETF RFC 8259 opisujeta obliko, ki jo pogosto uporabljajo JavaScript in drugi programski jeziki.

Aplikacije delovnega območja podpirajo vrste podatkov, ki so navedene v tej tabeli skupaj s podrobnosti o njihovi ponazoritvi besedila:

Vrsta podatkov Opis Primer rezultata
Boolean true ali false. true
barva Niz, ki vsebuje osemmestno šestnajstiško ponazoritev barve. Ta ponazoritev ima obliko zapisa #rrggbbaa, kjer je rr rdeča komponenta, gg zelena komponenta, bb modra komponenta, aa pa je kanal alfa. Pri kanalu alfa 00 pomeni popolno prosojnost, ff pa popolno neprosojnost. Niz lahko prenesete v funkcijo ColorValue. "#102030ff"
Valuta Številka, ki za jezik uporabnika uporablja ustrezno decimalno ločilo. Po potrebi se uporabi znanstveni zapis. 1.345
Datum Niz, ki vsebuje datum v obliki zapisa ISO 8601 llll-mm-dd. "2019-03-31"
Datum in čas Niz, ki vsebuje datum/čas ISO 8601. Vrednosti datum/čas sta v UTC, kar označuje končnica »Z«. "2019-03-31T22:32:06.822Z"
GUID Niz, ki vsebuje vrednost GUID. Črke so male. "751b58ac-380e-4a04-a925-9f375995cc40"
Slika, mediji Če je podan JSONFormat.IncludeBinaryData , so predstavnostne datoteke kodirane v nizu. Spletne reference, ki uporabljajo shemo URL http: ali https:, se ne spremenijo. Sklici na dvojiške podatke v pomnilniku so kodirani z obliko zapisa "data:mimetype;base64,...". Podatki v pomnilniku vključujejo slike, ki jih uporabniki zajamejo s kontrolnikom Camera, in vse druge sklice s shemami URL appres: in blob:. "data:image/jpeg;base64,/9j/4AA..."
številka Številka, ki za jezik uporabnika uporablja ustrezno decimalno ločilo. Po potrebi se uporabi znanstveni zapis. 1.345
nabor možnosti Številska vrednost izbire, ne oznaka, ki se uporablja za prikaz. Številska vrednost se uporablja zato, ker ni odvisna od jezika. 1001
Čas Niz, ki vsebuje obliko zapisa ISO 8601 hh:mm:ss.fff. "23:12:49.000"
Zapis Seznam, ločen z vejico, med { in } ali polji in njihovimi vrednostmi. Ta zapis spominja na zapise v aplikacijah delovnega območja, vendar je ime vedno med dvojnimi narekovaji. Ta oblika zapisa ne podpira zapisov, ki temeljijo na odnosih »mnogo proti ena«. { "First Name": "Fred", "Age": 21 }
Tabela Seznam, ločen z vejico, med [ in ] v zapisih. Ta oblika zapisa ne podpira tabel, ki temeljijo na odnosih »ena proti mnogo«. Uporabite možnost JSONFormat.FlattenValueTables , da odstranite zapis za tabele z enim stolpcem s stolpcem z imenom Vrednost. [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ]
Dve možnosti Logična vrednost za dve možnosti, true ali fals, in ne oznaka, ki se uporablja za prikaz. Logična vrednost se uporablja zato, ker ni odvisna od jezika. false
Hiperpovezava, besedilo Niz med dvojnimi narekovaji. Funkcija se izogne vdelanim dvojnim narekovajem s poševnico nazaj, nove vrstice nadomesti z »\n« in naredi druge standardne zamenjave za JavaScript. "This is a string."

Določite neobvezni argument Oblika zapisa in upravljajte, kako berljiv je rezultat in kako se obravnavajo nepodprte vrste in vrste dvojiških podatkov. Privzeto je rezultat čim bolj strnjen, brez nepotrebnih presledkov ali novih vrstic, nepodprte vrste podatkov in dvojiški podatki pa niso dovoljeni. Kombinirate lahko več formatov, če podate operator & .

Enumerator JSONFormat Opis
JSONFormat.Compact Privzeto. Rezultat je karseda strnjen, brez dodanih presledkov ali novih vrstic.
JSONFormat.FlattenValueTables Kot Tabela vrednosti, [1,2,3] zapis povzroči tabelo, ki vsebuje zapise, kjer ima vsak zapis eno samo Vrednost stolpec. V JSONisti obliki zapisa predstavlja matriko treh števil. Ta možnost za lažjo interoperabilnost med njima izravna tabelo vrednosti Power Fx JSON v prijazno matriko namesto polja zapisov.
JSONFormat.IndentFour Za izboljšanje berljivosti rezultat vsebuje novo vrstico za vsak stolpec in raven gnezdenja ter uporabi štiri presledke za vsako raven zamika.
JSONFormat.IncludeBinaryData Rezultat vključuje stolpce za slike, videoposnetke in zvočne posnetke. Ta oblika zapisa lahko znatno poveča velikost rezultata in zmanjša učinkovitost delovanja vaše aplikacije.
JSONFormat.IgnoreBinaryData Rezultat ne vključuje stolpcev za slike, videoposnetke ali zvočne posnetke. Če ne podate niti JSONFormat.IncludeBinaryData niti JSONFormat.IgnoreBinaryData, funkcija ustvari napako, če naleti na binarne podatke.
JSONFormat.IgnoreUnsupportedTypes Nepodprte vrste podatkov so dovoljene, vendar jih rezultat ne vključi. Nepodprte vrste podatkov privzeto ustvarijo napako.

Uporabite funkciji ShowColumns in DropColumns ter upravljajte, katere podatke vključuje rezultat, in odstranite nepodprte vrste podatkov.

Ker JSON sta lahko tako pomnilnik kot tudi zahtevna računanje, lahko to funkcijo uporabljate le v funkcijah vedenja. Rezultat lahko zajamete v spremenljivkoJSON, ki jo lahko nato uporabite v podatkovnem toku.

Če ima stolpec prikazno ime in logično ime, rezultat vsebuje logično ime. Prikazna imena odražajo jezik uporabnika aplikacije in so zato neprimerna za prenos podatkov v skupno storitev.

Sintaksa

JSON( DataStructure [, Format ] )

  • DataStructure – Zahtevano. Struktura podatkov, ki jo želite pretvoriti v JSON. Tabele, zapisi in osnovne vrednosti so podprte in poljubno ugnezdene.
  • Oblika - neobvezno. Vrednost JSONFormat oštevilčenje. Privzeta vrednost je JSONFormat.Compact, ki ne dodaja novih vrstic ali presledkov ter blokira binarne podatke in nepodprte stolpce.

Primeri

Hierarhični podatki

  1. Vstavite kontrolnik Button in nastavite njegovo lastnost OnSelect na to formulo.

    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. Izberite gumb, medtem ko držite tipko Alt.

    Zbirka CitiesByCountry je ustvarjena s to strukturo podatkov, ki jo lahko pokažete tako, da izberete Zbirke v meniju Mapa in nato izberete ime zbirke.

    Zbirka CitiesByCountry.

    To zbirko lahko prikažete tudi tako, da izberete Nastavitve>Prihajajoče funkcije>Omogoči ogled rezultatov vnosne vrstice in izberite ime zbirke v vnosni vrstici ter puščico navzdol ob imenu zbirke pod vnosno vrstico.

    Zbirka v pogledu rezultatov vrstice formule.

  3. Vstavite še en gumb in nastavite njegovo lastnost OnSelect na to formulo:

    Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )
    

    Ta formula nastavi globalno spremenljivko CitiesByCountryJSON na predstavitev JSON mest po državah.

  4. Izberite gumb, medtem ko držite tipko Alt.

  5. Vstavite kontrolnik Label in nastavite njegovo lastnost Besedilo na to spremenljivko:

    CitiesByCountryJSON
    

    Oznaka prikaže ta rezultat, in sicer v celoti v eni vrstici brez presledkov, tako da je primeren za prenos prek omrežja:

    [
      {
        "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. Spremenite formulo drugega gumba, da bo rezultat bolj berljiv.

    Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
    
  7. Medtem ko držite tipko Alt, izberite drugi gumb.

    Oznaka prikazuje bolj berljiv rezultat.

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

Slike in predstavnost v obliki zapisa Base64

  1. Dodajte kontrolnik Slika.

    Ta kontrolnik doda SampleImage.

  2. Dodajte kontrolnik Button in nastavite njegovo lastnost OnSelect na to formulo.

    Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
    
  3. Izberite gumb, medtem ko držite tipko Alt.

  4. Dodajte oznako in nastavite njeno lastnost Besedilo na to spremenljivko.

    ImageJSON
    
  5. Če želite prikazati večino rezultata, spremenite velikost kontrolnika in zmanjšajte velikost pisave.

    Oznaka prikazuje besedilni niz, ki ga je zajela JSON funkcija.

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

Tabele vrednosti

Ta formula:

JSON( [1,2,3] )

Ustvari besedilni niz [{"Vrednost":1},{"Vrednost":2},{"Vrednost":3}].

Ista formula z možnostjo JSONFormat.FlattenValueTables:

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

Ustvari besedilni niz [1,2,3].

Možnost »FlattenValueTables« JSON nima nobenega vpliva pri uporabi z zbirkami »MestoPoselji « ali » MestaPoDržavi «, saj te tabele niso tabele z vrednostmi. Tabela z vrednostmi ima en sam stolpec in mora biti imenovan "Vrednost".