ParseJSON функциясы
Қолданылады: Canvas қолданбалары Үлгіге негізделген қолданбалар Power Pages Power Platform CLI
JSON жолын түсіндіреді және жіктелмеген нысанды қайтарады.
Сипаттама
ParseJSON функциясы жарамды JSON жолын талдайды және JSON құрылымын ұсынатын жіктелмеген нысанды қайтарады.
ParseJSON функциясы ECMA-404 және IETF RFC 8259 бөлімдерінде сипатталған JavaScript Object Notation (JSON) пішіміне сәйкес мәтін жарамды JSON болмаса, қателерді қайтаруы мүмкін.
Синтаксис
ParseJSON( JSONString )
- JSONString – Міндетті. JSON құрылымы мәтін ретінде ұсынылған.
Жіктелмеген нысан деректер түрін түрлендіру
ParseJSON қолдау көрсетілетін деректер түрлеріндегі өріс мәндерін нақты түрлендіруді қажет ететін жіктелмеген нысанды қайтарады. Төмендегі кестеде Power Apps бағдарламасындағы деректер түрлері және сәйкес JSON деректер түрі және оны түрлендіру жолы берілген.
Деректер түрі | JSON мысалдары | Сипаттама | Түрлендіру мысалы |
---|---|---|---|
Boolean | { "bool": true } |
Логикалық JSON ішіндегі айқын түрі және оны тікелей түрлендіруге болады. | Логикалық( ParseJSON("{ ""bool"": true }").bool ) |
Түсі | { "color": "#102030" } { "r": 255, "g": 128, "b": 0, "a": 0.5 } |
JSON пішіміне түс түрі жоқ. Түс мәндерін RGBA бүтін сандарынан немесе он алтылық жолдардан жасауға болады. | ColorValue( ParseJSON( "{ ""түс"": ""#102030"" }" ).color ) ( { uo: ParseJSON( "{ ""r"": 255, ""g"": 128, ""b"": 0, ""a"" : 0,5 }" ) }, RGBA( Value( uo.r ), Value ( uo.g ), Value ( uo.b ), Value ( uo.a ) ) ) |
Валюта, сан | { "numbervalue": 123.5 } |
Сандар тікелей JSON ішінде нүктемен ( . ) ондық бөлгіш ретінде көрсетіледі. | Мән( ParseJSON("{ ""сандық мән"": 123,5 }").сан мәні ) |
Күн, күн/уақыт, уақыт | { "start": "2022-05-10" } { "start": "23:12:49.000" } |
JSON пішімінде күн немесе уақыт түрі жоқ, сондықтан күндер мен уақыттарды жолдар ретінде ғана көрсете алады. Жіктелмеген нысанды тікелей ISO 8601 пішіміндегі жолдан күнге, уақытқа немесе күннің уақытына түрлендіруге болады. Басқа пішімдер үшін алдымен JSON өрісін Text() функциясын пайдаланып мәтінге түрлендіріңіз, содан кейін әдепкі бойынша ағымдағы пайдаланушы параметрлерінің тілін пайдаланатын DateValue(), TimeValue() or DateTimeValue() функциясын пайдаланыңыз. | DateValue( ParseJSON("{ ""кездесу"": ""2022-05-10"" }").тағайындау ) DateValue( Мәтін( ParseJSON("{ ""кездесу"": ""2022 жылғы 5 мамыр"" }").кездесу ) ) |
GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSON пішімінде GUID идентификаторлары үшін деректер түрі жоқ, сондықтан оларды тек жолдар ретінде көрсетуге болады. | GUID( ParseJSON("{ ""id""": ""123e4567-e89b-12d3-a456-426655440000"" }").id ) |
HyperLink, кескін, мультимедиа | { "URI": "https://northwindtraders.com/logo.jpg" } |
Бұл деректер түрлері мәтін деректер түрлері болып табылады және оларды мәтінге түрлендіріп және содан кейін Power Apps бағдарламасында пайдалануға болады. | Мәтін( ParseJSON("{ ""URI"": ""https://northwindtraders.com/logo.jpg"" }").URI ) |
Таңдау | { "status": 1 } { "status": "Closed" } |
Таңдаулар санмен бекітілген локализацияланған жолдар ретінде ұсынылады. JSON() функциясы таңдауды өзінің қосалқы нөміріне сериялайды. Саннан немесе жолдан таңдауға тікелей түрлендіру жоқ, бірақ Switch() немесе If() функцияларын мәтіндік немесе сандық мәнде пайдалануға болады. | Ауыстыру( Мән( ParseJSON( "{ ""күй"": 1 }" ).status ), 0, Күй.Ашық, 1, Күй.Жабық ) |
Жазба | { "field": "value" } |
JSON нысанынан жазба құрылымына тікелей түрлендіру жоқ, бірақ жеке өрістерді жазбаны қалыптастыру үшін жіктелмеген нысаннан шығарып алуға болады. | { өріс: Мәтін( ParseJSON( "{ ""өріс"": ""мән"" }" ).өріс ) } |
Жазба сілтемесі | қолданылмайды | Жазба сілтемелері деректер көздеріне бірегей және оларды сериялау немесе сериядан шығару мүмкін емес. Бірегей кілттерді көрсететін өріс мәндерін кейін іздеуге болатын жазбаларды анықтау үшін JSON ішінде пайдалануға болады. | қолданылмайды |
Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ] [1, 2, 3] |
JSON пішімінде кестеге түрлендіруге болатын массивтер болуы мүмкін. Бұл мәндер жазбалардың массивтері немесе тиімді бір бағанды кестелер болып табылатын мәндердің массивтері болуы мүмкін. ParseJSON() массивтерді тек терілмеген нысандардың бір бағандық кестесіне түрлендіруге болады және сол сияқты пайдалануға немесе терілген кестелерге түрлендіруге болады. ForAll() арқылы жазады. | ForAll( Table( ParseJSON( "[ { ""id""": 1, ""аты"": ""бір"" }, { " "id"": 2, ""аты"": ""екі"" } ]" ) ), { id: Мән(ThisRecord.Value.id), атауы: Мәтін(ThisRecord.Value.name) } ) |
Мәтін | { "stringField": "this is text" } |
Мәтін JSON ішіндегі айқын түрі және оны тікелей түрлендіруге болады. | Мәтін( ParseJSON( "{ ""stringField"": ""бұл мәтін"" }").stringField ) |
Екі опция | { "available": true } { "available": "Yes" } |
Екі опция логикалық мәнмен бекітілген локализацияланған жолдар ретінде ұсынылады. JSON() функциясы екі опцияны логикалық мәнге сериялайды. Логикалық мәннен немесе жолдан екі таңдауға тікелей түрлендіру жоқ, бірақ Switch() немесе If() функцияларын мәтінде, санда немесе логикалық мәнде пайдалануға болады. | Ауыстыру( логикалық( ParseJSON( "{ ""қол жетімді"": шын }" ).қолжетімді ), жалған, Availability.No, шын, Қол жетімділік.Иә ) |
Мысалдар
Өріс мәндеріне қатынасу
JsonString
деп аталатын айнымалыдағы келесі JSON жолын ескере отырып
{ "parent": { "child": "text value" }, "number": 567 }
- Келесі формула
text value
мәтінін қайтарады:Text( ParseJSON( JsonString ).parent.child )
- Келесі формула
567
санын қайтарады:Value( ParseJSON( JsonString ).number )
Өріс атауы жарамсыз идентификатор атауынан тұратын жағдайда, өріс атауларын жалғыз тырнақшаға қоюға болады.
JsonString
деп аталатын айнымалыдағы келесі JSON жолын ескере отырып
{ "0": { "child-field": "text value" } }
- Келесі формула
text value
мәтінін қайтарады:Text( ParseJSON( JsonString ).'0'.'child-field' )
Бос орындар
JsonString
деп аталатын айнымалыдағы келесі JSON жолын ескере отырып
{ "text": "text value" , "number": 567, "empty": null }
- Жоқ өрістерге қатынасу әрекеті Бос() мәнін қайтарады. Келесі формула
true
қайтарады:IsBlank( Text( ParseJSON( JsonString ).parent.child ) )
- JSON
null
мәндері Бос() деп саналады. Келесі формулаtrue
қайтарады:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Қарапайым массивтер
JsonString
деп аталатын айнымалыдағы келесі JSON жолын ескере отырып
{ "array": [1, 2, 3] }
- Жіктелмеген нысанның массив өрісінің бір бағанды кестесіндегі екінші санға қатынасу және Value() арқылы санға түрлендіру
2
қайтарады:Value( Index( ParseJSON( JsonString ).array, 2 ) )
- Массив өрісінің жіктелмеген нысанының бір бағанды кестесін
{ Value: 1 }, { Value: 2 }, { Value: 3 }
сандардың бір бағанды кестесіне түрлендіру:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Жазбалар массивтері
JsonString
деп аталатын айнымалыдағы келесі JSON жолын ескере отырып
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Жазбалардың жіктелген кестесін тікелей ForAll() арқылы түрлендіруді жіктелмеген нысан өрістеріне қатынасуға болатын
ThisRecord.[fieldname]
көмегімен орындауға және оларды белгілі түрлерге түрлендіруге болады:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Кесте массиві
- Жіктелмеген нысанда кестеге Table() функциясы арқылы түрлендіру жіктелмеген нысандардың бір бағанды кестесіне әкеледі. Содан кейін нысанға
Value
(бір) баған арқылы қатынасу және бұрын түсіндірілгендей түрлерге түрлендіру қажет.
JsonString
деп аталатын айнымалыдағы келесі JSON жолын ескере отырып
{ "array": [1, 2, 3] }
Table() массивтегі санның бір бағандық мәні бар типсіз нысандардың бір бағанды кестесін қайтарады...
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() массивтегі әрбір json нысанын көрсететін түрленбеген нысандар бір бағанды кестені қайтарады.
Set(untypedTable, Table( ParseJSON( JsonString ).array );
Text( Index(untypedTable, 1).Value.name )