Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Отнася се за: Приложения
за платно Copilot Studio
Моделиращи приложения
Power Platform CLI
Dataverse функции
Power Pages
Генерира текстов JSON низ за таблица, запис или стойност.
Описание
Функцията JSON връща представяне на обектния запис на JavaScript (JSON) на структура от данни като текст, така че да е подходяща за съхраняване или предаване в мрежа. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf и IETF RFC 8259 описват формата, който е широко използван от JavaScript и други езици за програмиране.
Приложенията за платно поддържат типове данни, които тази таблица съдържа списък с подробности за тяхното представяне на текст:
| Тип на данните | Описание | Пример за резултат |
|---|---|---|
| Булева | вярно или невярно. | true |
| Цвят | Низ, който съдържа 8-цифреното шестнадесетично изображение за цвета. Това представяне приема формат # rrggbbaa, където RR е червеният компонент, GG е зелен, bb е синьо и аа е алфа каналът. За алфа канала, 00 е напълно прозрачен и ff е напълно непрозрачен. Можете да предадете низ на ColorValue функция. | "#102030ff" |
| Валута | Номер, който използва подходящия десетичен разделител за езика на потребителя. При необходимост се използва научна нотация. | 1.345 |
| Дата | Низ, който съдържа датата в ISO 8601 yyyy-mm-dd формат. | "2019-03-31" |
| ДатаЧас | Низ, който съдържа дата / час по ISO 8601. Стойностите за дата / час са в UTC, както показва завършекът „Z“. | "2019-03-31T22:32:06.822Z" |
| GUID | Низ, който съдържа GUID стойността. Буквите са малки букви. | "751b58ac-380e-4a04-a925-9f375995cc40" |
| Имидж, Медии | Ако е посочен JSONFormat.IncludeBinaryData , мултимедийните файлове се кодират в низ. Уеб препратките, които използват http: или https: URL схемата, не се променят. Препратките към бинарните данни в паметта са кодирани с "data:mimetype;base64,..." формат. Данните в паметта включват изображения, които потребителите заснемат с помощта на Камера контрола и всякакви други препратки към схемите appres: и blob: URL. | "data:image/jpeg;base64,/9j/4AA..." |
| Номер | Номер, който използва подходящия десетичен разделител за езика на потребителя. При необходимост се използва научна нотация. | 1.345 |
| Набор от опции | Числова стойност на избора, а не етикетът, който се използва за показване. Използва се числовата стойност, тъй като е независим от езика. | 1001 |
| Час | Низ, който съдържа ISO 8601 hh:mm:ss.fff формат. | "23:12:49.000" |
| Запис | Списък, разделен със запетая, между { и }, на полетата и техните стойности. Тази нотация прилича на тази за записи в приложения за платно, но името винаги е между двойни кавички. Този формат не поддържа записи, които се основават на взаимоотношения много към един. | { "First Name": "Fred", "Age": 21 } |
| Маса | Списък, разделен със запетая, между [ и ], на записи. Този формат не поддържа таблици, които се основават на релация едно към много. Използвайте опцията JSONFormat.FlattenValueTables , за да премахнете записа за таблици с една колона с име Value. | [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ] |
| Два варианта | Булева стойност на двата варианта, вярно или невярно, а не етикета, който се използва за показване. Използва се булевата стойност, тъй като е независим от езика. | false |
| Хипервръзка, текст | Низ между двойни кавички. Функцията избягва вградените двойни кавички с обратна черта, заменя новите редове с „\n" и прави други стандартни подмяна на JavaScript. | "This is a string." |
Посочете незадължителния аргумент формат за контрол на това, колко е четим резултатът и как се обработват неподдържани и бинарни типове данни. По подразбиране изходът е възможно най-компактен, без излишни интервали или нови редове, а неподдържаните типове данни и двоичните данни не са позволени. Можете да комбинирате няколко формата, ако посочите оператора & .
| Номериране JSONFormat | Описание |
|---|---|
| JSONFormat.Compact | По подразбиране. Изходът е възможно най-компактен, без добавени интервали или нови редове. |
| JSONFormat.FlattenValueTables | Като таблица "Стойност" [1,2,3] нотацията води до таблица, съдържаща записи, където всеки запис има една колона "Стойност". В JSONтази нотация представлява масив от три числа. За да улесни работната съвместимост между двата варианта, тази опция сплесва таблицата Power Fx Value към удобен JSON масив вместо масив от записи. |
| JSONFormat.IndentFour | За да се подобри четимостта, изходът съдържа нов ред за всяка колона и ниво на влагане и използва четири интервала за всяко ниво на отстъп. |
| JSONFormat.IncludeBinaryData | Резултатът включва колони за изображения, видео и аудиоклипове. Този формат може драстично да увеличи размера на резултата и да влоши производителността на приложението ви. |
| JSONFormat.IgnoreBinaryData | Резултатът не включва колони за изображения, видео или аудиоклипове. Ако не посочите нито JSONFormat.IncludeBinaryData , нито JSONFormat.IgnoreBinaryData, функцията издава грешка, ако срещне двоични данни. |
| JSONFormat.IgnoreUnsupportedTypes | Неподдържани типове данни са позволени, но резултатът няма да ги включва. По подразбиране неподдържаните типове данни създават грешка. |
Използвайте ShowColumns and DropColumns функции за контрол на кои данни включва резултата и премахване на неподдържани типове данни.
Тъй като JSON паметта и изчисленията са интензивни, можете да използвате тази функция само във функции за поведение. Можете да заснемете резултата от JSON в променлива, която след това можете да използвате в поток от данни.
Ако една колона има както име на дисплей, така и логическо име, резултатът съдържа логическото име. Показваните имена отразяват езика на потребителя на приложението и следователно са неподходящи за трансфер на данни към обща услуга.
Синтаксис
JSON( DataStructure [, Format ] )
- DataStructure – Задължително. Структурата на данните, която трябва да се преобразува в JSON. Поддържат се таблици, записи и примитивни стойности, произволно вложени.
- Формат - По избор. JSONFormat стойност на изброяване. Стойността по подразбиране е JSONFormat.Compact, която не добавя нови редове или интервали и блокира двоични данни и неподдържани колони.
Примери
Йерархични данни
Вмъкнете контрола бутон и задайте свойството й OnSelect на тази формула.
ClearCollect( CityPopulations, { City: "London", Country: "United Kingdom", Population: 8615000 }, { City: "Berlin", Country: "Germany", Population: 3562000 }, { City: "Madrid", Country: "Spain", Population: 3165000 }, { City: "Hamburg", Country: "Germany", Population: 1760000 }, { City: "Barcelona", Country: "Spain", Population: 1602000 }, { City: "Munich", Country: "Germany", Population: 1494000 } ); ClearCollect( CitiesByCountry, GroupBy( CityPopulations, "Country", "Cities" ) )Изберете бутона, докато държите клавиша Alt.
Колекцията CitiesByCountry се създава с тази структура на данните, която можете да покажете, като изберете Колекции в менюто Файл и след това изберете името на колекцията.
Можете също да покажете тази колекция, като изберете Настройки>Предстоящи функции>Активиране на изгледа с резултати от лентата с формули, като изберете името на колекцията в лентата с формули и след това изберете стрелката надолу до името на колекцията под лентата с формули.
Вмъкнете друг бутон и задайте свойството му OnSelect на тази формула:
Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )Тази формула задава глобалната променлива CitiesByCountryJSON на JSON представяне за CitiesByCountry.
Изберете бутона, докато държите клавиша Alt.
Вмъкнете контрола Етикет и задайте свойството й Текст на тази променлива.
CitiesByCountryJSONЕтикетът показва този резултат, всички на една линия без интервали, подходящи за предаване през мрежа:
[ { "Cities": [{ "City": "London", "Population": 8615000 }], "Country": "United Kingdom" }, { "Cities": [ { "City": "Berlin", "Population": 3562000 }, { "City": "Hamburg", "Population": 1760000 }, { "City": "Munich", "Population": 1494000 } ], "Country": "Germany" }, { "Cities": [ { "City": "Madrid", "Population": 3165000 }, { "City": "Barcelona", "Population": 1602000 } ], "Country": "Spain" } ]Променете формулата на втория бутон, за да направите изхода по-четим.
Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))Изберете втория бутон, докато държите клавиша Alt.
Етикетът показва по-четим резултат.
[ { "Cities": [ { "City": "London", "Population": 8615000 } ], "Country": "United Kingdom" }, { "Cities": [ { "City": "Berlin", "Population": 3562000 }, { "City": "Hamburg", "Population": 1760000 }, { "City": "Munich", "Population": 1494000 } ], "Country": "Germany" }, { "Cities": [ { "City": "Madrid", "Population": 3165000 }, { "City": "Barcelona", "Population": 1602000 } ], "Country": "Spain" } ]
Изображения и медии в base64
Добавяне на контрола Image.
Този контрол носи SampleImage с нея.
Добавете контрола бутон и задайте свойството й OnSelect на тази формула.
Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )Изберете бутона, докато държите клавиша Alt.
Добавете етикет и задайте свойството му Текст на тази променлива.
ImageJSONПреоразмерете контрола и намалете размера на шрифта според нуждите, за да покажете по-голямата част от резултата.
Етикетът показва текстовия низ, заснет от JSON функцията.
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
Таблици със стойности
Тази формула:
JSON( [1,2,3] )
създава текстовия низ [{"Стойност":1},{"Стойност":2},{"Стойност":3}].
Същата формула с опцията JSONFormat.FlattenValueTables:
JSON( [1,2,3], JSONFormat.FlattenValueTables )
Създава текстовия низ [1,2,3].
Обърнете внимание, че опцията FlattenValueTables не оказва влияние при използване JSON с колекциите CityPopulations или CitiesByCountry , тъй като тези таблици не са таблици със стойности. Таблицата със стойности има една колона и трябва да бъде наречена "Стойност".