ParseJSON funtzioa
Hauei aplikatzen zaie: Canvas aplikazioak
Ereduetan oinarritutako aplikazioak
Power Pages
Power Platform CLI
JSON kate bat interpretatzen du eta idatzi gabeko objektua itzultzen du.
Deskribapenak
ParseJSON funtzioak baliozko JSON kate bat analizatuko du eta idatzi gabeko objektua JSON egitura adierazten duena itzuliko du.
ParseJSON funtzioak erroreak itzul ditzake testua JSON baliozkoa ez bada ECMA-404 eta deskribatutako JavaScript Object Notation (JSON) formatuaren arabera. IETF RFC 8259.
Sintaxia
ParseJSON( JSONString )
- JSONString – Beharrezkoa. JSON egitura testu gisa irudikatuta.
Idatzi gabeko objektuaren datu mota bihurtzea
ParseJSON-ek idatzi gabeko objektua itzultzen du eta horrek eremu-balioen konbertsio esplizitua eskatzen du onartutako datu-motetan. Hurrengo taulan datu motak Power Apps eta dagozkion JSON datu-mota zerrendatzen dira eta nola bihurtu.
Datu mota | JSON adibideak | Deskribapenak | Adibidearen bihurketa |
---|---|---|---|
Boolean | { "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. Idatzi gabeko objektu bat zuzenean ISO 8601 formatuan dagoen kate batetik data, ordua edo data-ordu 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 ) ) |
GUIDa | { "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"" }").URI ) |
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 dago bihurketa zuzena idatzi gabeko JSON objektua erregistratzeko egitura, baina indibidualak eremuak berreskura daitezke idatzi gabeko objektua sortzeko inprimaki berria. | { 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 idatzi gabeko objektuen zutabe bakarreko taula batean soilik bihur daitezke, eta honela erabil daitezke edo idatzitako tauletan bihur daitezke. erregistroak ForAll() erabiliz. | ForAll( Taula( ParseJSON( "[ { ""id"": 1, ""izena"": ""bat"" }, { " "id"": 2, ""izena"": ""bi"" } ]" ) ), { id: Balioa (ThisRecord.Value.id), izena: Testua (ThisRecord.Value.name) } ) |
Testu-mezua | { "stringField": "this is text" } |
Testua JSON-n mota esplizitua da eta zuzenean bihur daiteke. | Text( ParseJSON( "{ ""stringField"": ""this is text"" }").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
JsonString
izeneko aldagai batean JSON kate hau emanda
{ "parent": { "child": "text value" }, "number": 567 }
text value
testua itzultzen du honako formula honek:Text( ParseJSON( JsonString ).parent.child )
567
zenbakia itzultzen du honako formula honek:Value( ParseJSON( JsonString ).number )
Eremu-izenak identifikatzaile-izen baliogabe batez osatuta badago, eremu-izenak komatxo bakarrean jar ditzakezu.
JsonString
izeneko aldagai batean JSON kate hau emanda
{ "0": { "child-field": "text value" } }
text value
testua itzultzen du honako formula honek:Text( ParseJSON( JsonString ).'0'.'child-field' )
Hutsik dauden balioak
JsonString
izeneko aldagai batean JSON kate hau emanda
{ "text": "text value" , "number": 567, "empty": null }
- Existitzen ez diren eremuetara sartzen saiatzeak Blank() itzultzen du.
true
itzultzen du honako formula honek:IsBlank( Text( ParseJSON( JsonString ).parent.child ) )
- JSON
null
balioak Blank() hartzen dira.true
itzultzen du honako formula honek:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Matrize sinpleak
JsonString
izeneko aldagai batean JSON kate hau emanda
{ "array": [1, 2, 3] }
- Matrize-eremuaren bigarren zenbakia atzitzen baduzu motarik gabeko objektuaren zutabe bakarreko taula batean eta zenbaki bihurtzen baduzu Value() erabiliz,
2
itzultzen du:Value( Index( ParseJSON( JsonString ).array, 2 ) )
- Array eremuko idatzi gabeko objektuaren zutabe bakarreko taula bihurtzea, zenbakien zutabe bakarreko taula
{ Value: 1 }, { Value: 2 }, { Value: 3 }
:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Erregistroen matrizeak
JsonString
izeneko aldagai batean JSON kate hau emanda
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Erregistroen motadun taula bat bihurtzen baduzu zuzenean ForAll() funtzioarekin,
ThisRecord.[fieldname]
erabil dezakezu motarik gabeko objektua atzitzeko eta balioak mota ezagun bihurtzeko:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Matrizea taulara
- Idatzi gabeko objektua bihurtzea taula batean zuzenean sar daiteke, edo Taula() funtzioaren emaitzak erabiliz gero idatzi gabeko objektua zutabe-taula. Ondoren, objektura
Value
zutabe (bakarra) erabiliz atzitu behar da eta aurretik azaldu bezala motatara bihurtu.
JsonString
izeneko aldagai batean JSON kate hau emanda
{ "array": [1, 2, 3] }
Table()zutabe bakarreko taula bat itzultzen du motarik gabeko objektuen matrizeko zenbakiaren zutabe bakarreko balioa duten...
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() itzultzen du motarik gabeko objektuen zutabe bakarreko taula bat matrizeko JSON objektu bakoitza adierazten duena.
Set(untypedTable, Table( ParseJSON( JsonString ).array );
Text( Index(untypedTable, 1).Value.name )
Oharrak
https://aka.ms/ContentUserFeedback.
Laster erabilgarri: 2024an, GitHub-eko arazoak edukiari buruzko oharrak bidaltzeko mekanismo gisa kenduko dugu apurka-apurka, eta oharrak bidaltzeko sistema berri batekin ordeztuko. Informazio gehiagorako, ikusi:Bidali eta ikusi honi buruzko oharrak: