Kopīgot, izmantojot


JSON funkcija

Attiecas uz: Pamatnes programmām Modeļa vadītas programmas Power Pages

Ģenerē JSON teksta virkni tabulai, ierakstam vai vērtībai.

Apraksts

Funkcija JSON atgriež datu struktūras JavaScript objekta apzīmējuma (JSON) reprezentāciju kā tekstu, lai tas būtu piemērots glabāšanai vai pārsūtīšanai tīklā. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf un IETF RFC 8259 apraksta formātu, ko plaši izmanto JavaScript un citās programmēšanas valodās.

Pamatnes programmas atbalsta datu veidus, kurus šī tabula uzskaita ar detalizētu informācija par to teksta attēlojumu:

Datu tips Apraksts Rezultātu piemērs
Būla patiess vai nepatiess. true
Krāsa Virkne, kas satur astoņu ciparu heksadecimālu krāsas attēlojumu. Šis attēlojums izmanto formātu #rrggbbaa, kurā rr ir sarkanais komponents, gg ir zaļš, bb ir zils, bet aa ir alfa kanāls. Alfa kanālam 00 ir pilnībā caurspīdīgs, bet ff ir pilnīgi necaurredzams. Varat padot virkni uz funkciju ColorValue. "#102030ff"
Valūta Skaitlis, kas izmanto lietotāja valodai atbilstošu decimāldaļu atdalītāju. Vajadzības gadījumā tiek izmantots zinātnisks apzīmējums. 1.345
Datums Virkne, kurā iekļauts datums ISO 8601 formātā yyyy-mm-dd. "2019-03-31"
DateTime Virkne, kas satur ISO 8601 datumu/laiku. Datuma/laika vērtības ir UTC sistēmā, kā to norāda beigas "Z". "2019-03-31T22:32:06.822Z"
GUID Virkne, kas satur GUID vērtību. Burti ir mazie burti. "751b58ac-380e-4a04-a925-9f375995cc40"
Attēls, multivide Ja ir norādīts JSONFormat.IncludeBinaryData , multivides faili tiek kodēti virknē. Tīmekļa atsauces, kuras izmanto http: vai https: URL shēmu netiek modificētas. Atsauces uz atmiņas binārajiem datiem tiek kodētas ar formātu "data:mimetype;base64,...". Atmiņas dati ietver attēlus, kurus lietotājs tver, izmantojot Kameras vadīklu un jebkuras citas atsauces ar URL shēmām appres: un blob:. "data:image/jpeg;base64,/9j/4AA..."
Skaitlis Skaitlis, kas izmanto lietotāja valodai atbilstošu decimāldaļu atdalītāju. Vajadzības gadījumā tiek izmantots zinātnisks apzīmējums. 1.345
opciju kopa Skaitliska vērtība pēc izvēles, nevis etiķete, kas tiek izmantota parādīšanai. Tiek izmantota skaitliska vērtība, jo tā ir neatkarīga no valodas. 1001
Laiks Virkne, kura satur ISO 8601 formātu hh:mm:ss.fff. "23:12:49.000"
Rekords Komatatdalīts lauku un to vērtību saraksts starp { un }. Šis apzīmējums atgādina apzīmējumu ierakstiem pamatnes programmās, taču nosaukums vienmēr atrodas starp pēdiņām. Šis formāts neatbalsta ierakstus, kuru pamatā ir relācija daudzi pret vienu. { "First Name": "Fred", "Age": 21 }
Galds Komatdalīts ierakstu saraksts starp [ un ]. Šis formāts neatbalsta tabulas, kuru pamatā ir relācija viens pret daudziem. Izmantojiet opciju JSONFormat.FlattenValueTables , lai noņemtu ierakstu vienas kolonnas tabulām ar kolonnu Vērtība . [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ]
Divas iespējas Divu opciju Būla vērtība true vai false, nevis etiķete, kas tiek izmantota rādīšanai. Tiek izmantota Būla vērtība, jo tā ir neatkarīga no valodas. false
hipersaite, teksts Virkne starp dubultpēdiņām. Funkcija iziet no iegultajām dubultpēdiņām ar atpakaļvērsto slīpsvītru, aizstāj jaunās rindas ar "\n" un veic citus JavaScript standarta aizvietojumus. "This is a string."

Norādiet neobligāto Formāta argumentu, lai kontrolētu to, cik lasāms ir rezultāts un kā tiek apstrādāti neatbalstītie un binārie datu veidi. Izvade pēc noklusējuma ir maksimāli kompakta bez liekām atstarpēm vai jaunām rindām, un nav atļauti neatbalstīti datu veidi un binārie dati. Varat apvienot vairākus formātus, ja norādāt & operatoru.

JSONFormat uzskaitījums Apraksts
JSONFormat.Compact Noklusējuma. Izvade ir maksimāli kompakta bez pievienotām atstarpēm vai jaunām rindām.
JSONFormat.FlattenValueTables Kā vērtību tabula notācijas rezultātā tiek iegūta tabula, kurā ir ieraksti, kur katram ierakstam ir viena [1,2,3] kolonna Vērtība . JSON šis pats apzīmējums apzīmē trīs skaitļu masīvu. Lai atvieglotu sadarbspēju starp abiem, šī opcija saplacina Power Fx vērtību tabulu JSON draudzīgā masīvā, nevis ierakstu masīvā.
JSONFormat.IndentFour Lai uzlabotu lasāmību, izvade satur jaunu rindu katrai kolonnai un ligzdošanas līmenim un izmanto četras atstarpes katram atkāpes līmenim.
JSONFormat.IncludeBinaryData Rezultāts ietver attēla, videoklipa un audioklipa kolonnas. Formāts var ievērojami palielināt rezultāta lielumu un samazināt programmas veiktspēju.
JSONFormat.IgnoreBinaryData Rezultāts neietver attēla, videoklipa vai audioklipa kolonnas. Ja nenorādāt ne JSONFormat.IncludeBinaryData , ne JSONFormat.IgnoreBinaryData, funkcija rada kļūdu, ja tā sastopas ar bināriem datiem.
JSONFormat.IgnoreUnsupportedTypes Ir atļauti neatbalstīti datu veidi, taču rezultāts tos neietvers. Neatbalstīti datu veidi pēc noklusējuma rada kļūdu.

Izmantojiet funkcijas ShowColumns un DropColumns, lai kontrolētu, kurus datus rezultāts iekļauj, un lai noņemtu neatbalstītos datu veidus.

Tā kā JSON var būt intensīvs gan attiecībā uz atmiņu, gan aprēķiniem, varat izmantot šo funkciju vienīgi uzvedības funkcijas. Varat tvert rezultātu no JSON mainīgajā, kuru varat pēc tam izmantot datu plūsmā.

Ja kolonnai ir gan rādāmais nosaukums, gan loģiskais nosaukums, rezultāts ietvers loģisko nosaukumu. Parādāmie nosaukumi atspoguļo programmas lietotāja valodu un tādējādi nav piemēroti datu pārnesei uz vispārējo servisu.

Sintakse

JSON( Datu struktūra [, Formāts ] )

  • DataStructure - Obligāts. Datu struktūra, ko pārvērst par JSON. Tabulas, ieraksti un primitīvas vērtības tiek atbalstītas, patvaļīgi ligzdotas.
  • Formāts - neobligāts. JSONFormat uzskaitījums vērtība. Noklusējuma vērtība ir JSONFormat.Compact, kas nepievieno jaunas rindiņas vai atstarpes un bloķē bināros datus un neatbalstītas kolonnas.

Piemēri

Hierarhiski dati

  1. Ievadiet vadīklu Button un iestatiet tās rekvizītu OnSelect uz šo formulu.

    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. Atlasiet pogu, turot nospiestu Alt taustiņu.

    Izmantojot šo datu struktūru, tiek izveidota kolekcija CitiesByCountry, kuru varat rādīt, izvēlnē Fails atlasot Kolekcijas un pēc tam atlasot kolekcijas nosaukumu.

    CitiesByCountry kolekcija.

    Šo kolekciju var arī parādīt, atlasot Iestatījumi>Gaidāmie līdzekļi>Iespējot formulas joslas rezultātu skatu, formulu joslā atlasot kolekcijas nosaukumu un pēc tam formulu joslā atlasot lejupvērsto bultiņu blakus kolekcijas nosaukumam.

    Kolekcija formulu joslas rezultātu skatā.

  3. Ievadiet citu pogu un iestatiet tās rekvizītu OnSelect uz šo formulu:

    Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )
    

    Šī formula iestata globālo mainīgo CitiesByCountryJSON uz JSON attēlojumu mainīgajam CitiesByCountry.

  4. Atlasiet pogu, turot nospiestu Alt taustiņu.

  5. Ievadiet vadīklu Label un iestatiet tās rekvizītu Teksts uz šo mainīgo:

    CitiesByCountryJSON
    

    Etiķetē redzams šis rezultāts, viss vienā rindā bez atstarpēm un piemērots pārsūtīšanai pa tīklu:

    [
      {
        "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. Mainiet otrās pogas formulu, lai padarītu izvadi lasāmāku.

    Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))
    
  7. Atlasiet otro pogu, turot nospiestu Alt taustiņu.

    Etiķetē redzams lasāmāks rezultāts.

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

Attēli un multivide base64

  1. Pievienojiet Image vadīklu.

    Šī vadīkla nodrošina arī SampleImage.

  2. Pievienojiet vadīklu Button un iestatiet tās rekvizītu OnSelect uz šo formulu.

    Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )
    
  3. Atlasiet pogu, turot nospiestu Alt taustiņu.

  4. Pievienojiet etiķeti un iestatiet tās Teksta rekvizītu uz šo mainīgo.

    ImageJSON
    
  5. Mainiet vadīklas izmēru un samaziniet fonta lielumu pēc vajadzības, lai rādītu lielāko daļu rezultāta.

    Etiķetē redzama teksta virkne, kuru tvēra JSON funkcija.

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

Vērtību tabulas

Šī formula:

JSON( [1,2,3] )

Izveido teksta virkni [{"Vērtība":1},{"Vērtība":2},{"Vērtība":3}].

Tā pati formula ar opciju JSONFormat.FlattenValueTables:

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

Izveido teksta virkni [1,2,3].

Ņemiet vērā, ka opcijai FlattenValueTables nav ietekmes, lietojot JSON ar kolekcijām CityPopulations vai CitiesByCountry , jo šīs tabulas nav vērtību tabulas. Vērtību tabulā ir viena kolonna, un tās nosaukumam ir jābūt "Vērtība".