Belešku
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da se prijavite ili da promenite direktorijume.
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da promenite direktorijume.
Odnosi se na: Canvas aplikacije
Copilot Studio
Aplikacije zasnovane na
modelu Power Platform CLI
Dataverse funkcije
Power Pages
Tumači JSON nisku i vraća dinamičku vrednost ili određenu otkucanu vrednost ako je naveden tip.
Važno
- Korišćenje drugog argumenta za konvertovanje ParseJSON u otkucani objekat je eksperimentalna funkcija.
- Eksperimentalne funkcije nisu namenjene za korišćenje u proizvodnji i mogu da imaju ograničene funkcionalnosti. Ove funkcije su dostupne pre zvaničnog izdanja, tako da možete dobiti rani pristup i pružiti povratne informacije. Još informacija: Objašnjenje eksperimentalnih, preliminarnih i povučenih funkcija aplikacijama sa podlogom
- Ponašanje koje ovaj članak opisuje je dostupno samo kada je uključena eksperimentalna funkcija Korisnički definisani tipovi u Podešavanjima > Predstojeće funkcije > Eksperimentalno (podrazumevano je isključena).
- Vaše povratne informacije su nam veoma dragocene. Molimo Vas da nam kažete šta mislite na forumu Power Apps zajednice eksperimentalnih funkcija.
Opis
Funkcija ParseJSON raščlanjuje važeću JSON nisku i vraća dinamičku vrednost koja predstavlja JSON strukturu.
Opciono, koristite drugi argument da biste pretvorili JSON u otkucani objekat koji se može direktno koristiti u Power Fx formulama. To čini rezultat lakšim za konzumiranje jer konverzije i prisile na mestu upotrebe više nisu potrebne. Neotkucani JSON je mapiran na tip sa ovim pravilima:
- Kolone u tipu koje nisu prisutne u JSON-u su popunjene praznim .
- Kolone u JSON-u koje nisu prisutne u tipu se ignorišu.
- Kolone koje su i u tipu i u JSON-u, JSON vrednost mora biti prinudna za tip.
ParseJSON Funkcija može da vrati greške ako tekst nije važeći JSON u skladu sa formatom JavaScript Object Notation (JSON) opisanim u ECMA-404 i IETF RFC 8259.
Sintaksa
ParseJSON( JSONString [ , Otkucaj ] )
- JSONString – Obavezno. JSON struktura predstavljena kao tekst.
- Tip - Opciono. Definicija Power Fx tipa za JSON strukturu. Bez ovog argumenta vraća ParseJSON dinamičku vrednost; funkcija sa snosi određenu otkucanu vrednost.
Konvertovanje dinamičkih vrednosti
Bez drugog argumenta vraća ParseJSON dinamičku vrednost koja zahteva eksplicitnu konverziju vrednosti polja u podržanim tipovima podataka. Sledeća tabela navodi tipove podataka i Power Apps i odgovarajući JSON tip podataka i način njihovog konvertovanja.
| Tip podataka | Primeri JSON | Opis | Primer konverzije |
|---|---|---|---|
| Boolean | { "bool": true } |
Logički tip je eksplicitni tip u JSON specifikaciji i može se direktno konvertovati. | Boolean( ParseJSON("{ ""bool"": true }").bool ) |
| Boja | { "color": "#102030" }{ "r": 255, "g": 128, "b": 0, "a": 0.5 } |
Ne postoji tip boje u JSON specifikaciji. Vrednosti boja se mogu kreirati iz RGBA celih brojeva ili heksadecimalnih niski. |
ColorValue( ParseJSON( "{ "boja"": ""#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, broj | { "numbervalue": 123.5 } |
Brojevi se u JSON specifikaciji predstavljaju direktno sa tačkom ( . ) kao znakom za razdvajanje decimala. | Value( ParseJSON("{ ""vrednost broja"": 123,5 }").numbervalue ) |
| Datum, datum-vreme, vreme | { "start": "2022-05-10" }{ "start": "23:12:49.000" } |
JSON nema tip datuma ili vremena, tako da datum i vreme može da predstavlja samo kao niske. Dinamička vrednost se može direktno konvertovati iz niske u ISO 8601 formatu u datum, vreme ili datum. Za druge formate, prvo konvertujte JSON polje u tekst pomoću funkcije Text(), a zatim koristite funkciju DateValue(), TimeValue() ili DateTimeValue() koja će podrazumevano koristiti jezik postavki trenutnog korisnika. |
DateValue( ParseJSON("{ "zakazana obaveza": ""2022-05-10"" }").appointment ) DateValue( Tekst( ParseJSON("{ "zakazana obaveza": ""5. maj 2022."" }").appointment ) ) |
| GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSON nema tip podataka za GUID vrednosti, tako da one mogu biti predstavljene samo kao niske. | GUID( ParseJSON("{ "id": ""123e4567-e89b-12d3-a456-426655440000"" }").id ) |
| Hiperveza, slika, mediji | { "URI": "https://northwindtraders.com/logo.jpg" } |
Ovi tipovi podataka su tekstualni tipovi podataka i mogu se konvertovati u tekst, a zatim koristiti u usluzi Power Apps. | Text( ParseJSON("{ ""URI"": ""https://northwindtraders.com/logo.jpg"" }"). URI ) |
| Izbor | { "status": 1 }{ "status": "Closed" } |
Izbori su predstavljeni kao lokalizovane niske praćene brojem. Funkcija JSON() serijalizuje izbor pratećim brojem. Nema direktne konverzije iz broja ili niske u izbor, ali funkcije Switch() ili If() mogu da se koriste na tekstu ili numeričkoj vrednosti. | Switch( Value( ParseJSON( "{ ""status"": 1 }" ).status ), 0, Status.Open, 1, Status.Closed ) |
| Record | { "field": "value" } |
Ne postoji direktna konverzija iz JSON objekta u strukturu zapisa, ali pojedinačna polja se mogu preuzeti iz dinamičke vrednosti radi formiranja zapisa. | { polje: Text( ParseJSON( "{ ""polje"": ""value"" }" ).field ) } |
| Referenca zapisa | Nije primenjivo | Reference zapisa su jedinstvene za izvore podataka i ne mogu biti serijalizovane ili neserijalizovane. Vrednosti polja koje predstavljaju jedinstvene ključeve mogu se koristiti u JSON-u da bi se identifikovali zapisi koji se zatim mogu potražiti. | Nije primenjivo |
| Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ][1, 2, 3] |
JSON može da sadrži nizove koji se mogu konvertovati u tabele. Ove vrednosti mogu biti nizovi zapisa ili nizovi vrednosti koje su efektivno tabele sa jednom kolonom. ParseJSON() nizove je moguće konvertovati samo u tabelu sa jednom kolonom dinamičkih vrednosti i mogu se koristiti kao takvi ili se mogu konvertovati u otkucane tabele zapisa koristeći ForAll(). | ForAll( Table( ParseJSON( "[ { ""id"": 1, ""name"": ""one"" }, { ""id"": 2, ""name"": ""two"" } ]" ) ), { id: Value(ThisRecord.Value.id), name: Text(ThisRecord.Value.name) } ) |
| Tekst | { "stringField": "this is text" } |
Tekst je eksplicitni tip u JSON specifikaciji i može se direktno konvertovati. | Text( ParseJSON( "{ ""stringField"": ""this is text"" }").stringField ) |
| Dve opcije | { "available": true }{ "available": "Yes" } |
Dve opcije se predstavljaju kao lokalizovane niske praćene logičkom vrednošću. Funkcija JSON() serijalizuje dve opcije prema logičkim vrednostima. Nema direktne konverzije iz logičke vrednosti, broja ili niske u dve opcije, ali funkcije Switch() ili If() mogu da se koriste na tekstualnoj, numeričkoj ili logičkoj vrednosti. | Switch( Bulova( ParseJSON( "{ ""dostupno"": true }" ).available ), false, Availability.No, true, Availability.Yes ) |
Primeri
Pristup vrednostima polja
U sledećoj JSON niski u promenljivoj pod nazivom JsonString
{ "parent": { "child": "text value" }, "number": 567 }
- Sledeća formula vraća tekst
text value:Text( ParseJSON( JsonString ).parent.child ) - Sledeća formula vraća broj
567:Value( ParseJSON( JsonString ).number )
U slučaju da se naziv polja sastoji od nevažećeg naziva identifikatora, nazive polja možete staviti u jednostruke navodnike.
U sledećoj JSON niski u promenljivoj pod nazivom JsonString
{ "0": { "child-field": "text value" } }
- Sledeća formula vraća tekst
text value:Text( ParseJSON( JsonString ).'0'.'child-field' )
Prazne vrednosti
U sledećoj JSON niski u promenljivoj pod nazivom JsonString
{ "text": "text value" , "number": 567, "empty": null }
- Pokušaj pristupa nepostojećim poljima vraća Blank(). Sledeća formula vraća
true:IsBlank( Text( ParseJSON( JsonString ).parent.child ) ) - Za JSON
nullvrednosti se smatra da su Blank(). Sledeća formula vraćatrue:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Jednostavni nizovi
U sledećoj JSON niski u promenljivoj pod nazivom JsonString
{ "array": [1, 2, 3] }
- Pristup drugom broju u tabeli sa jednom kolonom polja niza dinamičkih vrednosti i konvertovanje u broj pomoću funkcije Value() daje:
2Value( Index( ParseJSON( JsonString ).array, 2 ) ) - Konvertovanje tabele sa jednom kolonom dinamičkih vrednosti u polju niza u tabelu sa jednom kolonom brojeva
{ Value: 1 }, { Value: 2 }, { Value: 3 }:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Nizovi zapisa
U sledećoj JSON niski u promenljivoj pod nazivom JsonString
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Konvertovanje u otkucanu tabelu zapisa direktno pomoću programa ForAll()
ThisRecord.[fieldname]može se obaviti pomoću za pristup dinamičkim poljima i konvertovanjem u određene tipove:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Iz niza u tabelu
-
Konvertovanje dinamičkih vrednosti u tabelu pomoću funkcije Table() daje rezultate u tabeli sa jednom kolonom dinamičkih vrednosti. Objektu je zatim potrebno pristupiti koristeći (jednu) kolonu
Valuei konvertovati je u tipove kao što je prethodno objašnjeno.
U sledećoj JSON niski u promenljivoj pod nazivom JsonString
{ "array": [1, 2, 3] }
Table() daje tabelu sa jednom kolonom dinamičkih vrednosti sa jednom kolonom Vrednost za broj u nizu...
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() daje tabelu sa jednom kolonom dinamičkih vrednosti koja predstavlja svaki json objekat u nizu.
Set(untypedTable, Table( ParseJSON( JsonString ).array ) );
Text( Index(untypedTable, 1).Value.name )