opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
Velja za: Canvas apps
Copilot Studio
Model-driven apps
Power Platform CLI
Dataverse funkcije
Power Pages
Interpretira niz JSON in vrne dinamično vrednost ali določeno natipkano vrednost, če je na voljo vrsta.
Pomembno
- Uporaba drugega argumenta za ParseJSON pretvorbo v natipkani predmet je preskusna funkcija.
- Poskusne funkcije niso predvidene za produkcijsko uporabo in je njihovo delovanje morda omejeno. Te funkcije so na voljo pred uradno izdajo, tako da lahko dobite zgodnji dostop in posredujete povratne informacije. Več informacij: Razumevanje poskusnih funkcij, funkcij predogledne različice in umaknjenih funkcij v aplikacijah s platni
- Vedenje, ki ga opisuje ta članek, je na voljo le, ko je Uporabniško določena vrsta eksperimentalna funkcija v Nastavitve > Prihajajoče funkcije > Eksperimentalno je vklopljeno (privzeto je izklopljeno).
- Vaše povratne informacije so za nas zelo dragocene. Sporočite nam svoje mnenje na Power Apps forumu skupnosti eksperimentalnih funkcij.
Description
Funkcija ParseJSON razčleni veljaven niz JSON in vrne dinamično vrednost, ki predstavlja strukturo JSON.
Po želji uporabite drugi argument za pretvorbo JSON v vtipkan predmet, ki ga je mogoče neposredno uporabiti v Power Fx formulah. To olajša uporabo rezultata, saj pretvorbe in prisile na mestu uporabe niso več potrebne. Netipizirani JSON je preslikan v vrsto s temi pravili:
- Stolpci v vrsti, ki niso prisotni v JSON, so izpolnjeni s prazno.
- Stolpci v JSON, ki niso prisotni v vrsti, so prezrti.
- Stolpci, ki so hkrati v vrsti in JSON, mora biti vrednost JSON prisilna glede na vrsto.
Funkcija ParseJSON lahko vrne napake, če besedilo ni veljavno JSON glede na obliko zapisa JSON (JavaScript Object Notation), ki je opisana v ECMA-404 in IETF RFC 8259.
Sintaksa
ParseJSON( JSONString [ , vrsta ] )
- JSONString – Zahtevano. Struktura JSON, predstavljena kot besedilo.
- Vrsta - neobvezno. Definicija Power Fx tipa za strukturo JSON. Brez tega argumenta vrne ParseJSON dinamično vrednost; z njim funkcija vrne določeno natipkano vrednost.
Pretvarjanje dinamičnih vrednosti
Brez drugega argumenta vrne dinamično vrednost, ParseJSONki zahteva izrecno pretvorbo vrednosti polj v podprtih podatkovnih tipih. Naslednja tabela navaja vrste podatkov v Power Apps in ustrezne vrste podatkov JSON ter način njihove pretvorbe.
| Podatkovni tip | Primeri JSON | Description | Primer pretvorbe |
|---|---|---|---|
| logičen | { "bool": true } |
Logična vrednost je izrecna vrsta v JSON in jo je mogoče neposredno pretvoriti. | Boolean( ParseJSON("{ ""bool""": true }").bool ) |
| Barva | { "color": "#102030" }{ "r": 255, "g": 128, "b": 0, "a": 0.5 } |
V JSON ni vrste barve. Barvne vrednosti je mogoče ustvariti iz celih števil RGBA ali šestnajstiških nizov. |
ColorValue( ParseJSON( "{ ""color""": ""#102030"" }" ).color ) With( { uo: ParseJSON( "{ ""r": 255, ""g""": 128, ""b"": 0, ""a"": 0,5 }" ) }, RGBA( Value( uo.r ), Value( uo.g ), Value( uo.b ), Value( uo.a ) ) |
| Valuta, številka | { "numbervalue": 123.5 } |
Številke so predstavljene neposredno v JSON s piko ( . ) kot decimalnim ločilom. | Value( ParseJSON("{ ""numbervalue""": 123.5 }").numbervalue ) |
| Datum, DateTime, čas | { "start": "2022-05-10" }{ "start": "23:12:49.000" } |
JSON nima vrste datuma ali časa, zato lahko predstavlja samo datume in čase kot nize. Dinamično vrednost je mogoče pretvoriti neposredno iz niza v obliki zapisa ISO 8601 v datum, čas ali datum in uro. Pri drugih oblikah zapisa je treba najprej pretvoriti polje JSON v besedilo s funkcijo Text() in nato uporabiti funkcijo DateValue(), TimeValue() or DateTimeValue(), ki bo privzeto uporabila jezik nastavitev trenutnega uporabnika. |
DateValue( ParseJSON("{ ""appointment""": """2022-05-10"" }").sestanek ) DateValue( Besedilo( ParseJSON("{ ""sestanek""": ""5. maj 2022"" }").sestanek ) ) |
| GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSON nima podatkovnega tipa za GUID-je, zato jih je mogoče predstaviti le kot nize. | GUID( ParseJSON("{ ""id""": ""123e4567-e89b-12d3-a456-426655440000"" }").id ) |
| HyperLink, slika in predstavnost | { "URI": "https://northwindtraders.com/logo.jpg" } |
Te vrste podatkov so besedilne vrste podatkov in jih je mogoče pretvoriti v besedilo in nato uporabiti v storitvi Power Apps. | Besedilo( ParseJSON("{ ""URI""": ""https://northwindtraders.com/logo.jpg"" }"). URI ) |
| Možnost | { "status": 1 }{ "status": "Closed" } |
Izbire so predstavljene kot lokalizirani nizi, ki so podprti s številom. Funkcija JSON() serializira izbiro v njeno podporno številko. Ni nobene neposredne pretvorbe števila ali niza v izbiro, ampak funkcije Switch() ali If() lahko uporabite za besedilno ali številsko vrednost. | Switch( Value( ParseJSON( "{ ""status""": 1 }" ).status ), 0, Status.Open, 1, Status.Closed ) |
| Zapis | { "field": "value" } |
Ni neposredne pretvorbe iz predmeta JSON v strukturo zapisa, vendar je mogoče posamezna polja pridobiti iz vrednosti Dynamic za oblikovanje zapisa. | { field: Text( ParseJSON( "{ ""field""": ""value"" }" ).field ) } |
| Sklic na zapis | Ni na voljo | Sklici na zapise so edinstveni za vire podatkov in jih ni mogoče serializirati ali preklicati serializacije. Vrednosti polj, ki predstavljajo edinstvene ključe, je mogoče uporabiti v JSON za identifikacijo zapisov, ki jih je nato mogoče poiskati. | Ni na voljo |
| Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ][1, 2, 3] |
JSON lahko vsebuje polja, ki jih je mogoče pretvoriti v tabele. Te vrednosti so lahko polja zapisov ali polja vrednosti, ki so dejansko tabele z enim stolpcem. ParseJSON() matrike je mogoče pretvoriti le v tabelo z enim stolpcem vrednosti Dynamic in jih je mogoče uporabiti kot take ali pretvoriti v vtipkane tabele zapisov s funkcijo ForAll(). | ForAll( Table( ParseJSON( "[ { ""id""": 1, ""name""": ""one"" }, { ""id""": 2, ""name"": ""two"" } ]" ), { id: Value(ThisRecord.Value.id), name: Text(ThisRecord.Value.name) } ) |
| SMS-a | { "stringField": "this is text" } |
Besedilo je izrecna vrsta v JSON in jo je mogoče neposredno pretvoriti. | Text( ParseJSON( "{ ""stringField""": ""to je besedilo"" }").stringField ) |
| Dve možnosti | { "available": true }{ "available": "Yes" } |
Dve možnosti sta predstavljeni kot lokalizirani nizi, podprti z logično vrednostjo. Funkcija JSON() serializira dve možnosti v logično vrednost. Ni nobene neposredne pretvorbe logične vrednosti, števila ali niza v dve možnosti, ampak funkcijo Switch() ali If() lahko uporabite za besedilno, številsko ali logično vrednost. | Switch( Logična vrednost( ParseJSON( "{ ""available"": true }" ).available ), false, Availability.No, true, Availability.Yes ) |
Primeri
Dostop do vrednosti polja
Na podlagi naslednjega niza JSON v spremenljivki, poimenovani JsonString
{ "parent": { "child": "text value" }, "number": 567 }
- Naslednja formula vrne besedilo
text value:Text( ParseJSON( JsonString ).parent.child ) - Naslednja formula vrne število
567:Value( ParseJSON( JsonString ).number )
Če je ime polja sestavljeno iz neveljavnega imena identifikatorja, lahko imena polj postavite v enojne narekovaje.
Na podlagi naslednjega niza JSON v spremenljivki, poimenovani JsonString
{ "0": { "child-field": "text value" } }
- Naslednja formula vrne besedilo
text value:Text( ParseJSON( JsonString ).'0'.'child-field' )
Prazna
Na podlagi naslednjega niza JSON v spremenljivki, poimenovani JsonString
{ "text": "text value" , "number": 567, "empty": null }
- Poskus dostopa do neobstoječih polj vrne Blank(). Naslednja formula vrne
true:IsBlank( Text( ParseJSON( JsonString ).parent.child ) ) - Vrednosti JSON
nullso obravnavane kot Blank(). Naslednja formula vrnetrue:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Preprosta polja
Na podlagi naslednjega niza JSON v spremenljivki, poimenovani JsonString
{ "array": [1, 2, 3] }
- Accessing the second number in the array field's single-column table of Dynamic values and converting to a number using Value() returns
2:Value( Index( ParseJSON( JsonString ).array, 2 ) ) - Pretvarjanje tabele z enim stolpcem dinamičnih vrednosti v polju matrike v tabelo števil v enem stolpcu
{ Value: 1 }, { Value: 2 }, { Value: 3 }:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Polja zapisov
Na podlagi naslednjega niza JSON v spremenljivki, poimenovani JsonString
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Pretvorbo v natipkano tabelo zapisov neposredno s funkcijo ForAll()
ThisRecord.[fieldname]lahko naredite tako, da dostopate do dinamičnih polj in jih pretvorite v določene vrste:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Polje v tabelo
- Če pretvorite dinamične vrednosti v tabelo s funkcijo Table(), dobite rezultate v tabeli dinamičnih vrednosti z enim stolpcem . Do predmeta je treba nato dostopati z (enim) stolpcem
Valuein ga pretvoriti v vrste, kot je predhodno razloženo.
Na podlagi naslednjega niza JSON v spremenljivki, poimenovani JsonString
{ "array": [1, 2, 3] }
Table() vrne tabelo z enim stolpcem dinamičnih vrednosti z vrednostjo z enim stolpcem za število v matriki ...
Set(untypedTable, Table( ParseJSON( JsonString ).array ));
Value( Index(untypedTable, 1).Value.Value )
```
Given the following JSON string in a variable named `JsonString`
```JSON
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Table() vrne tabelo z enim stolpcem dinamičnih vrednosti, ki predstavlja vsak predmet json v matriki.
Set(untypedTable, Table( ParseJSON( JsonString ).array ) );
Text( Index(untypedTable, 1).Value.name )