Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Honako hauei aplikatzen zaie: Oihalezko aplikazioak
Copilot Studio
Ereduetan oinarritutako aplikazioak
Power Platform CLI
Dataverse funtzioak
Power Pages
JSON kate bat interpretatzen du, eta Dynamic balio bat edo motatutako balio zehatz bat itzultzen du, mota bat ematen bada.
Garrantzitsua da
- Bigarren argumentua erabiltzea ParseJSON objektu tipatu batera bihurtzeko ezaugarri esperimentala da.
- Eginbide esperimentalak ez daude ekoizpenerako diseinatuta, eta funtzionalitate murriztua izan dezakete. Ezaugarri hauek kaleratze ofizial bat baino lehen eskuragarri daude, atzitu eta iritzia eman ahal izateko. Informazio gehiago: Ulertu funtzio esperimentalak, aurrebistakoak eta kendu dira mihise-aplikazioetan
- Artikulu honek deskribatzen duen jokabidea Erabiltzaileak definitutako motak Ezarpenak Ezarpenak Datozen eginbideak > eginbide esperimentalaeginbide esperimentala denean soilik dago erabilgarri a62> > Experimental aktibatuta dago (lehenespenez desaktibatuta dago).
- Zure iritzia oso baliotsua da guretzat. Mesedez, esaguzu zer pentsatzen duzun Power Apps eginbide esperimentalen komunitatearen foroan.
Deskribapenak
Funtzioak ParseJSON baliozko JSON kate bat analizatzen du eta JSON egitura adierazten duen Dynamic balioa itzultzen du.
Aukeran, erabili bigarren argumentua JSON Power Fx formuletan zuzenean erabil daitekeen idatzitako objektu bihurtzeko. Honek emaitza errazago kontsumitzen du, erabilera puntuan konbertsioak eta behartzeak ez baitira beharrezkoak. Idatzi gabeko JSON motara mapatzen da arau hauekin:
- JSONan ez dauden motako zutabeak hutsikrekin betetzen dira.
- Motan ez dauden JSON-ko zutabeei ez ikusi egiten zaie.
- Bi motan eta JSON dauden zutabeetan, JSON balioak motari behartu egin behar dio.
Funtzioak ParseJSON erroreak itzul ditzake testua JSON baliozkoa ez bada, ECMA-404 eta IETF RFC 8259-n deskribatutako JavaScript Object Notation (JSON) formatuaren arabera.
Sintaxia
ParseJSON( JSONString [ , Mota ] )
- JSONString – Beharrezkoa. JSON egitura testu gisa irudikatuta.
- Mota - Aukerakoa. JSON egituraren Power Fx mota definizioa. Argumentu hau gabe, ParseJSON balio dinamiko bat itzultzen du; harekin batera, funtzioak balio zehatz bat itzultzen du.
Balio dinamikoak bihurtzea
Bigarren argumenturik gabe, Dynamic balioa itzultzen du, ParseJSON onartutako datu-motetako eremuen balioak esplizituki bihurtzea eskatzen duena. Hurrengo taulan datu motak Power Apps eta dagozkion JSON datu-mota zerrendatzen dira eta nola bihurtu.
| Datu mota | JSON adibideak | Deskribapenak | Adibidearen bihurketa |
|---|---|---|---|
| Boolear | { "bool": true } |
Boolearra JSON-n mota esplizitua da eta zuzenean bihur daiteke. | Boolean( ParseJSON("{ "bool""": true }").bool ) |
| Kolorea | { "color": "#102030" }{ "r": 255, "g": 128, "b": 0, "a": 0.5 } |
Ez dago kolore motarik JSON elementuan. Kolore-balioak RGBA zenbaki osoetatik edo hamaseitar kateetatik sor daitezke. |
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 ) ) ) |
| Moneta, zenbaki | { "numbervalue": 123.5 } |
Zenbakiak JSON-n zuzenean adierazten dira puntu bat ( . ) bereizle hamartar gisa. | Value( ParseJSON("{ "numbervalue"": 123.5 }").numbervalue ) |
| Data, DateTime, denbora | { "start": "2022-05-10" }{ "start": "23:12:49.000" } |
JSONek ez du data edo ordu motarik, beraz, datak eta orduak kate gisa soilik irudika ditzake. Balio dinamiko bat ISO 8601 formatuan dagoen kate batetik data, ordu edo data batera bihur daiteke. Beste formatuak JSON eremua testu bihurtu behar dira Text() funtzioa erabiliz eta ondoren DateValue(), TimeValue() edo DateTimeValue() funtzioa lehenespenez uneko erabiltzailearen ezarpenen hizkuntza erabiliko du. |
DateValue( ParseJSON("{ ""appointment"": ""2022-05-10"" }").appointment ) DateValue( Text( ParseJSON("{ ""appointment"": ""May 5, 2022"" }").appointment ) ) |
| GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSONek ez du datu motarik GUIdetarako, beraz, kate gisa soilik irudikatu daitezke. | GUID( ParseJSON("{ "id"": ""123e4567-e89b-12d3-a456-426655440000"" }").id ) |
| HyperLink, Irudia, Media | { "URI": "https://northwindtraders.com/logo.jpg" } |
Datu-mota hauek testu-datu motak dira, eta testu bihurtu eta gero Power Apps erabil daitezke. | Text( ParseJSON("{ ""URI"": ""https://northwindtraders.com/logo.jpg"" }"). URIa ) |
| Aukera | { "status": 1 }{ "status": "Closed" } |
Aukerak kate lokalizatu gisa aurkezten dira, zenbaki batean oinarrituta. JSON() funtzioak bere babeskopuruaren aukera bat serializatzen du. Ez dago zuzeneko bihurketa zenbakitik edo katetik aukera batera, baina Switch() edo If() funtzioak testu- edo zenbaki-balioan erabil daiteke. | switch( value( ParseJSON( "{ ""status""": 1 }" ).status ), 0, status.open, 1, status.closed ) |
| Grabatu | { "field": "value" } |
Ez JSON objektu batetik erregistro-egitura batera zuzeneko bihurketarik, baina eremu indibidualak berreskuratu daitezke Dynamic baliotik erregistro bat osatzeko. | { field: Text( ParseJSON( "{ ""field""": ""value"" }" ).field ) } |
| Erregistroaren erreferentzia | e/e | Erregistro-erreferentziak datu-iturburuetarako bakarrak dira eta ezin dira serializatu edo serializatu gabe. Gako esklusiboak adierazten dituzten eremu-balioak JSON-en erabil litezke gero bilatu daitezkeen erregistroak identifikatzeko. | e/e |
| Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ][1, 2, 3] |
JSONek matrizeak izan ditzake, eta horiek taula bihurtu daitezke. Balio hauek erregistro-matrizeak izan daitezke, edo zutabe bakarreko taulak diren balio-matrizeak. ParseJSON() matrizeak Dynamic balioen zutabe taula bakarrean bakarrik bihur daitezke, eta horrela erabil daitezke edo erregistroen taula tipokatuetan bihur daitezke ForAll() erabiliz. | ForAll( Table( ParseJSON( "[ { "id""": 1, ""name""": "one"" }, { ""id""": 2, ""name"": ""two"" } ]" ) ), { id: Value(ThisRecord.Value.id), name: Text(ThisRecord.Value.name) } ) |
| Testu-mezua | { "stringField": "this is text" } |
Testua JSON-n mota esplizitua da eta zuzenean bihur daiteke. | Text( ParseJSON( "{ """stringField"": ""hau testua da"" }").stringField ) |
| Bi aukera | { "available": true }{ "available": "Yes" } |
Bi aukerak kate lokalizatu gisa aurkezten dira, balio boolear baten oinarrituta. JSON() funtzioak bi aukera serializatzen ditu bere balio boolearra. Ez dago zuzeneko bihurketa zenbaki boolearrik edo katetik bi aukera batera, baina Switch() edo If() funtzioak testua edo zenbakia edo balio boolearra erabil daiteke. | Switch( Boolean( ParseJSON( "{ ""available"": true }" ).available ), false, Availability.No, true, Availability.Yes ) |
Adibideak
Eremuen balioak atzitzea
JsonStringizeneko aldagai batean JSON kate hau emanda
{ "parent": { "child": "text value" }, "number": 567 }
-
text valuetestua itzultzen du honako formula honek:Text( ParseJSON( JsonString ).parent.child ) -
567zenbakia itzultzen du honako formula honek:Value( ParseJSON( JsonString ).number )
Eremu-izenak identifikatzaile-izen baliogabe batez osatuta badago, eremu-izenak komatxo bakarrean jar ditzakezu.
JsonStringizeneko aldagai batean JSON kate hau emanda
{ "0": { "child-field": "text value" } }
-
text valuetestua itzultzen du honako formula honek:Text( ParseJSON( JsonString ).'0'.'child-field' )
Hutsik dauden balioak
JsonStringizeneko aldagai batean JSON kate hau emanda
{ "text": "text value" , "number": 567, "empty": null }
- Existitzen ez diren eremuetara sartzen saiatzeak Blank() itzultzen du.
trueitzultzen du honako formula honek:IsBlank( Text( ParseJSON( JsonString ).parent.child ) ) - JSON
nullbalioak Blank() hartzen dira.trueitzultzen du honako formula honek:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Matrize sinpleak
JsonStringizeneko aldagai batean JSON kate hau emanda
{ "array": [1, 2, 3] }
-
Balio dinamikoen zutabe bakarreko matrize-eremuko bigarren zenbakira sartzean eta Value() erabiliz zenbaki bihurtzen bada, honako hau itzultzen
2da:Value( Index( ParseJSON( JsonString ).array, 2 ) ) - Matrize-eremuko zutabe bakarreko balio dinamikoen taula zutabe bakarreko zenbakien
{ Value: 1 }, { Value: 2 }, { Value: 3 }taula bihurtzea:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Erregistroen matrizeak
JsonStringizeneko aldagai batean JSON kate hau emanda
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
ForAll() erregistroen taula motifikatu batera zuzenean bihurtzea eremu dinamikoetara atzitzeko eta mota zehatzetara bihurtzeko erabil
ThisRecord.[fieldname]daiteke:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Matrizea taulara
- Balio dinamikoak taula bihurtzean Table() funtzioa erabiliz zutabe bakarreko balio dinamikoen taula sortzen da. Ondoren, objektura
Valuezutabe (bakarra) erabiliz atzitu behar da eta aurretik azaldu bezala motatara bihurtu.
JsonStringizeneko aldagai batean JSON kate hau emanda
{ "array": [1, 2, 3] }
Table()- k zutabe bakarreko taula bat itzultzen du balio dinamikoekin , matrizeko zenbakiaren zutabe bakarreko balioarekin...
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() funtzioak zutabe bakarreko taula bat itzultzen du, matrizeko json objektu bakoitza irudikatzen duena.
Set(untypedTable, Table( ParseJSON( JsonString ).array ) );
Text( Index(untypedTable, 1).Value.name )