Белешка
Приступ овој страници захтева ауторизацију. Можете покушати да се пријавите или промените директоријуме.
Приступ овој страници захтева ауторизацију. Можете покушати да промените директоријуме.
Односи се на: Цанвас апликације
Цопилот Студио
Апликације
вођене моделом Повер Платформ ЦЛИ
Датаверсе функције
Повер Пагес
Тумачи ЈСОН стринг и враћа динамичку вредност или одређену откуцану вредност ако је тип обезбеђен.
Важно
- Коришћење другог аргумента за ParseJSON претварање у откуцани објекат је експериментална карактеристика.
- Експерименталне функције нису намењене за коришћење у производњи и могу да имају ограничене функционалности. Ове функције су доступне пре званичног издања, тако да можете добити рани приступ и пружити повратне информације. Још информација: Објашњење експерименталних, прелиминарних и повучених функција апликацијама са подлогом
- Понашање које овај чланак описује је доступно само када је укључена експериментална функција Кориснички дефинисани типови у Подешавањима > Предстојеће функције > Експериментално (подразумевано је искључена).
- Ваше повратне информације су нам веома драгоцене. Молимо Вас да нам кажете шта мислите на форуму Power Apps заједнице експерименталних функција.
Опис
Функција ParseJSON анализира важећи ЈСОН стринг и враћа динамичку вредност која представља ЈСОН структуру.
Опционо, користите други аргумент да бисте претворили ЈСОН у откуцани објекат који се може директно користити у Power Fx формулама. То чини резултат лакшим за конзумирање јер конверзије и присиле на месту употребе више нису потребне. Неоткуцани ЈСОН је мапиран на тип са овим правилима:
- Колоне у типу које нису присутне у ЈСОН-у су попуњене празним .
- Колоне у ЈСОН-у које нису присутне у типу се игноришу.
- Колоне које су и у типу и у ЈСОН-у, ЈСОН вредност мора бити принудна за тип.
Функција ParseJSON може да врати грешке ако текст није важећи ЈСОН у складу са ЈаваСцрипт Објецт Нотатион (ЈСОН) форматом описаним у ЕЦМА-404 и ИЕТФ РФЦ 8259 .
Синтакса
ParseJSON( ЈСОНСтринг [ , Тип ] )
- ЈСОНСтринг – Обавезно. JSON структура представљена као текст.
- Тип - Опционо. Дефиниција Power Fx типа за ЈСОН структуру. Без овог аргумента, ParseJSON враћа динамичку вредност; са њом функција враћа одређену откуцану вредност.
Претварање динамичких вредности
Без другог аргумента, ParseJSON враћа динамичку вредност која захтева експлицитну конверзију вредности поља у подржаним типовима података. Следећа табела наводи типове података и Power Apps и одговарајући JSON тип података и начин њиховог конвертовања.
| Тип података | Примери JSON | Опис | Пример конверзије |
|---|---|---|---|
| Логичка вредност | { "bool": true } |
Логички тип је експлицитни тип у JSON спецификацији и може се директно конвертовати. | Боолеан ( ParseJSON("{ ""боол""": истина }").боол ) |
| Боја | { "color": "#102030" }{ "r": 255, "g": 128, "b": 0, "a": 0.5 } |
Не постоји тип боје у JSON спецификацији. Вредности боја се могу креирати из RGBA целих бројева или хексадецималних ниски. |
ЦолорВалуе ( ParseJSON( "{ ""цолор"": ""#102030"" }" ).цолор ) Wитх ( { уо: ParseJSON( "{ ""р""": 255, ""г""": 128, ""б""": 0, "а""": 0.5 }" ) }, РГБА( Валуе( уо.р ), Валуе( уо.г ), Валуе( уо.б ), Валуе( уо.а ) ) ) ) |
| Валута, број | { "numbervalue": 123.5 } |
Бројеви се у JSON спецификацији представљају директно са тачком ( . ) као знаком за раздвајање децимала. | Валуе ( ParseJSON("{ ""нумбервалуе"": 123.5 }").нумбервалуе ) |
| Датум, датум-време, време | { "start": "2022-05-10" }{ "start": "23:12:49.000" } |
JSON нема тип датума или времена, тако да датум и време може да представља само као ниске. Динамичка вредност се може директно претворити из низа у ИСО 8601 формату на датум, време или датум. За друге формате, прво конвертујте JSON поље у текст помоћу функције Text(), а затим користите функцију DateValue(), TimeValue() или DateTimeValue() која ће подразумевано користити језик поставки тренутног корисника. |
ДатеВалуе ( ParseJSON("{ ""именовање"": ""2022-05-10"" }").именовање ) ДатеВалуе ( Теxт( ParseJSON("{ ""аппоинтмент"": ""5. мај 2022."" }").именовање ) ) |
| GUID | { "id": "123e4567-e89b-12d3-a456-426655440000" } |
JSON нема тип података за GUID вредности, тако да оне могу бити представљене само као ниске. | ГУИД ( ParseJSON("{ ""ид""": ""123e4567-e89b-12d3-a456-426655440000"" }").ид ) |
| Хипервеза, слика, медији | { "URI": "https://northwindtraders.com/logo.jpg" } |
Ови типови података су текстуални типови података и могу се конвертовати у текст, а затим користити у услузи Power Apps. | Теxт ( ParseJSON("{ ""УРИ""": ""; https://northwindtraders.com/logo.jpg"" }"). УРИ ) |
| Избор | { "status": 1 }{ "status": "Closed" } |
Избори су представљени као локализоване ниске праћене бројем. Функција JSON() серијализује избор пратећим бројем. Нема директне конверзије из броја или ниске у избор, али функције Switch() или If() могу да се користе на тексту или нумеричкој вредности. | Свитцх ( Валуе( ParseJSON( "{ ""статус""": 1 }" ).статус ), 0, Статус.Опен, 1, Статус.Цлосед ) |
| Запис | { "field": "value" } |
Не постоји директна конверзија из ЈСОН објекта у структуру записа, али појединачна поља се могу преузети из динамичке вредности да би се формирао запис. | { фиелд: Теxт( ParseJSON( "{ ""фиелд""": ""валуе"" }" ).фиелд ) } |
| Референца записа | Није примењиво | Референце записа су јединствене за изворе података и не могу бити серијализоване или несеријализоване. Вредности поља које представљају јединствене кључеве могу се користити у JSON-у да би се идентификовали записи који се затим могу потражити. | Није примењиво |
| Table | [ { "id": 1, "name": "one" }, { "id": 2, "name": "two" } ][1, 2, 3] |
JSON може да садржи низове који се могу конвертовати у табеле. Ове вредности могу бити низови записа или низови вредности које су ефективно табеле са једном колоном. ParseJSON () низови се могу претворити само у једну колону табеле динамичких вредности и могу се користити као такви или конвертовати у откуцане табеле записа користећи ФорАлл (). | ФорАлл (Табле( ParseJSON( "[ { "ид""": 1, ""наме""": ""оне"" }, { ""ид""": 2, ""наме""": ""тwо"" } ]" ) ), { ид: Валуе(ТхисРецорд.Валуе.ид), наме: Теxт(ТхисРецорд.Валуе.наме) } ) ) |
| Текст | { "stringField": "this is text" } |
Текст је експлицитни тип у JSON спецификацији и може се директно конвертовати. | Теxт ( ParseJSON( "{ ""стрингФиелд"": ""ово је текст"" }").стрингФиелд ) |
| Две опције | { "available": true }{ "available": "Yes" } |
Две опције се представљају као локализоване ниске праћене логичком вредношћу. Функција JSON() серијализује две опције према логичким вредностима. Нема директне конверзије из логичке вредности, броја или ниске у две опције, али функције Switch() или If() могу да се користе на текстуалној, нумеричкој или логичкој вредности. | Свитцх ( Боолеан( ParseJSON( "{ ""аваилабле""": труе }" ).аваилабле ), фалсе, Аваилабилитy.Но, труе, Аваилабилитy.Yес ) |
Примери
Приступ вредностима поља
У следећој JSON ниски у променљивој под називом JsonString
{ "parent": { "child": "text value" }, "number": 567 }
- Следећа формула враћа текст
text value:Text( ParseJSON( JsonString ).parent.child ) - Следећа формула враћа број
567:Value( ParseJSON( JsonString ).number )
У случају да се назив поља састоји од неважећег назива идентификатора, називе поља можете ставити у једноструке наводнике.
У следећој JSON ниски у променљивој под називом JsonString
{ "0": { "child-field": "text value" } }
- Следећа формула враћа текст
text value:Text( ParseJSON( JsonString ).'0'.'child-field' )
Празне вредности
У следећој JSON ниски у променљивој под називом JsonString
{ "text": "text value" , "number": 567, "empty": null }
- Покушај приступа непостојећим пољима враћа Blank(). Следећа формула враћа
true:IsBlank( Text( ParseJSON( JsonString ).parent.child ) ) - За JSON
nullвредности се сматра да су Blank(). Следећа формула враћаtrue:IsBlank( Text( ParseJSON( JsonString ).empty ) )
Једноставни низови
У следећој JSON ниски у променљивој под називом JsonString
{ "array": [1, 2, 3] }
- Приступање другом броју у табели динамичких вредности поља са једном колоном поља и претварање у број користећи Валуе () враћа
2:Value( Index( ParseJSON( JsonString ).array, 2 ) ) - Претварање табеле динамичких вредности са једном колоном у пољу низа, у једну колону табеле бројева
{ Value: 1 }, { Value: 2 }, { Value: 3 }:ForAll( ParseJSON( JsonString ).array, Value( ThisRecord ) )
Низови записа
У следећој JSON ниски у променљивој под називом JsonString
{ "array": [
{ "id": 1, "name": "One"},
{ "id": 2, "name": "Two"}
] }
Претварање у откуцану табелу записа директно са ФорАлл () може се урадити коришћењем
ThisRecord.[fieldname]за приступ динамичким пољима и претворити их у одређене типове:ForAll( ParseJSON( JsonString ).array, { id: Value(ThisRecord.id), name: Text(ThisRecord.name) })
Из низа у табелу
- Претварање динамичких вредности у табелу помоћу функције Табле () резултира табелом динамичких вредности са једном колоном. Објекту је затим потребно приступити користећи (једну) колону
Valueи конвертовати је у типове као што је претходно објашњено.
У следећој JSON ниски у променљивој под називом JsonString
{ "array": [1, 2, 3] }
Табела () враћа табелу динамичких вредности са једном колоном са једном колоном Вредност за број у низу ...
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"}
] }
Табле () враћа табелу динамичких вредности са једном колоном која представља сваки јсон објекат у низу.
Set(untypedTable, Table( ParseJSON( JsonString ).array ) );
Text( Index(untypedTable, 1).Value.name )