Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Aplícase a: Aplicacións
de lenzo Copilot Studio
Aplicacións
baseadas en modelos Power Platform CLI
Funcións
de Dataverse Power Pages
Xera unha cadea de JSON texto para unha táboa, un rexistro ou un valor.
Descripción
A JSON función devolve a representación JavaScript Object Notation (JSON) dunha estrutura de datos como texto para que sexa axeitada para almacenar ou transmitir a través dunha rede. [ECMA-404](https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf e IETF RFC 8259 descríbense o formato, que é moi utilizado por JavaScript e outras linguaxes de programación.
As aplicacións de lenzo admiten tipos de datos que esta táboa enumera con detalles sobre a súa representación de texto:
| Tipo de datos | Descripción | Exemplo de resultado |
|---|---|---|
| Booleano | verdadeiro ou falso. | true |
| Cor | Cadea que contén a representación hexadecimal de 8 díxitos para a cor. Esta representación leva o formato #rrggbbaa, onde rr é o compoñente vermello, gg é o verde, bb é o azul e aa é a canle alfa. Para a canle alfa, 00 é totalmente transparente e ff é totalmente opaco. Pode pasar a cadea á función ColorValue. | "#102030ff" |
| Moeda | Número que usa o separador decimal adecuado para o idioma do usuario. Se é necesario úsase unha notación científica. | 1.345 |
| Data | Cadea que contén a data no formato ISO 8601 aaaa-mm-dd. | "2019-03-31" |
| DataHora | Cadea que contén unha data e hora ISO 8601. Os valores de data e hora están en UTC, como indica o "Z" final. | "2019-03-31T22:32:06.822Z" |
| GUID | Cadea que contén o valor GUID. As letras son minúsculas. | "751b58ac-380e-4a04-a925-9f375995cc40" |
| Imaxe, Medios | Se se especifica JSONFormat.IncludeBinaryData , os ficheiros multimedia codificaranse nunha cadea. As referencias web que usan o esquema URL http: ou https: non se modifican. As referencias a datos binarios na memoria codifícanse co formato "data:mimetype;base64,...". Os datos na memoria inclúen imaxes que os usuarios capturan usando o control de Cámara e calquera outra referencia cos esquemas de URL appres: e blob:. | "data:image/jpeg;base64,/9j/4AA..." |
| Número | Número que usa o separador decimal adecuado para o idioma do usuario. Se é necesario úsase unha notación científica. | 1.345 |
| conxunto de opcións | Valor numérico da elección, non a etiqueta que se usa para mostrar. O valor numérico úsase porque é independente do idioma. | 1001 |
| Tempo | Cadea que contén un formato de hh: mm:ss.fff ISO 8601. | "23:12:49.000" |
| Gravar | Lista delimitada por comas, entre {e}, de campos e os seus valores. Esta notación aseméllase á dos rexistros en aplicacións de lenzo, pero o nome sempre está entre comiñas dobres. Este formato non admite rexistros baseados en relacións de un a varios. | { "First Name": "Fred", "Age": 21 } |
| Táboa | Lista delimitada por comas entre [e], de rexistros. Este formato non admite táboas baseadas en relacións de un a varios. Use a opción JSONFormat.FlattenValueTables para eliminar o rexistro das táboas dunha soa columna coa columna chamada Valor. | [ { "First Name": "Fred", "Age": 21 }, { "First Name": "Jean", "Age": 20 } ] |
| Dúas opcións | Valor booleano das dúas opcións, verdadeiro ou falso, non a etiqueta que se usa para mostrar. O valor booleano úsase porque é independente do idioma. | false |
| Hiperligazón, texto | Cadea entre comiñas dobres. A función escapa as comiñas dobres incrustadas cunha barra invertida, substitúe as novas novas por "\n", e fai outras substitucións estándar de JavaScript. | "This is a string." |
Especifique o argumento opcional de Formato para controlar o lexible que é o resultado e como se xestionan os tipos de datos non compatibles e binarios. De xeito predeterminado, a saída é o máis compacta posible sen espazos innecesarios nin novas liñas, e non se admiten tipos de datos non compatibles e datos binarios. Podes combinar varios formatos se especificas o operador & .
| Enumeración JSONFormat | Descripción |
|---|---|
| JSONFormat.Compact | Predefinido. A saída é o máis compacta posible sen espazos engadidos nin novas liñas. |
| JSONFormat.FlattenValueTables | Como unha táboa de valores, a [1,2,3] notación dá como resultado unha táboa que contén rexistros onde cada rexistro ten un único Valor columna. En JSON, esta mesma notación representa un conxunto de tres números. Para facilitar a interoperabilidade entre os dous, esta opción aplana unha táboa de valores de Power Fx a un JSON array amigable en lugar dun array de rexistros. |
| JSONFormat.IndentFour | Para mellorar a lexibilidade, a saída contén unha liña nova para cada columna e nivel de aniñamento e usa catro espazos para cada nivel de sangría. |
| JSONFormat.IncludeBinaryData | O resultado inclúe columnas de imaxe, vídeo e clip de audio. Este formato pode aumentar drasticamente o tamaño do resultado e degradar o rendemento da súa aplicación. |
| JSONFormat.IgnoreBinaryData | O resultado non inclúe columnas de imaxe, vídeo nin clip de audio. Se non especificas nin JSONFormat.IncludeBinaryData nin JSONFormat.IgnoreBinaryData, a función produce un erro se atopa datos binarios. |
| JSONFormat.IgnoreUnsupportedTypes | Os tipos de datos non compatibles están permitidos, pero o resultado non os incluirá. Por defecto, os tipos de datos non compatibles producen un erro. |
Use as funcións ShowColumns e DropColumns para controlar que datos inclúe o resultado e eliminar tipos de datos non compatibles.
Debido a que JSON pode ser intensiva tanto en memoria como en computación, só podes usar esta función en funcións de comportamento. Podes capturar o resultado dunha variable, que despois podes usar no fluxo de JSON datos.
Se unha columna ten un nome de visualización e un nome lóxico, o resultado contén o nome lóxico. Os nomes para mostrar reflicten o idioma do usuario da aplicación e son, polo tanto, inapropiados para a transferencia de datos a un servizo común.
Sintaxe
JSON( DataStructure [, Format ] )
- DataStructure – Obrigatorio. A estrutura de datos a converter.JSON As táboas, os rexistros e os valores primitivos admítense, arbitrariamente aniñados.
- Formato - Opcional. JSONFormat valor de enumeración. O valor predeterminado é JSONFormat.Compact, que non engade novas liñas nin espazos e bloquea os datos binarios e as columnas non compatibles.
Exemplos
Datos xerárquicos
Engada un control de Botón e axuste a súa propiedade OnSelect nesta fórmula.
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" ) )Seleccione o botón mantendo premida a tecla Alt.
A colección CitiesByCountry créase con esta estrutura de datos, que pode mostrar seleccionando Coleccións no menú Ficheiro e logo seleccionando o nome da colección.
Tamén pode amosar esta colección seleccionando Configuración>Próximas funcións>Activar a vista de resultados da barra de fórmulas, seleccionando o nome da colección na barra de fórmulas e, a continuación, seleccionando a frecha cara abaixo xunto ao nome da colección baixo a barra de fórmulas.
Engada outro control de botón e axuste a súa propiedade OnSelect nesta fórmula:
Set( CitiesByCountryJSON, JSON( CitiesByCountry ) )Esta fórmula establece a variable global CitiesByCountryJSON á JSON representación de CitiesByCountry.
Seleccione o botón mantendo premida a tecla Alt.
Engada un control de Etiqueta e configure a súa propiedade Texto nesta variable:
CitiesByCountryJSONA etiqueta mostra este resultado, todo nunha soa liña sen espazos, apta para a súa transmisión a través dunha rede:
[ { "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" } ]Cambie a fórmula do segundo botón para que a saída sexa máis lexible.
Set( CitiesByCountryJSON, JSON(CitiesByCountry, JSONFormat.IndentFour ))Seleccione o segundo botón mantendo premida a tecla Alt.
A etiqueta mostra o resultado máis lexible.
[ { "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" } ]
Imaxes e elementos multimedia en base64
Engada un control de imaxe.
Este control trae SampleImage consigo.
Engada un control de Botón e axuste a súa propiedade OnSelect nesta fórmula.
Set( ImageJSON, JSON( SampleImage, JSONFormat.IncludeBinaryData ) )Seleccione o botón mantendo premida a tecla Alt.
Engada unha etiqueta e configure a súa propiedade Texto nesta variable.
ImageJSONRedimensione o control e reduza o tamaño do tipo de letro segundo sexa necesario para mostrar a maior parte do resultado.
A etiqueta mostra a cadea de texto que capturou a JSON función.
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIg0KCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczphPSJodHRwOi8vbnMuYWRvYmUuY29tL0Fkb2JlU1ZHVmlld2VyRXh0ZW5zaW9ucy8zLjAvIg0KCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjI3MHB4IiBoZWlnaHQ9IjI3MHB4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNzAgMjcwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8ZyBjbGFzcz0ic3QwIj4NCgkJPHJlY3QgeT0iMC43IiBmaWxsPSIjRTlFOUU5IiB3aWR0aD0iMjY5IiBoZWlnaHQ9IjI2OS4zIi8+DQoJCTxwb2x5Z29uIGZpbGw9IiNDQkNCQ0EiIHBvaW50cz0iMjc3LjksMTg3LjEgMjQ1LDE0My40IDE4OC42LDIwMi44IDc1LDgwLjUgLTQuMSwxNjUuMyAtNC4xLDI3MiAyNzcuOSwyNzIiLz4NCgkJPGVsbGlwc2UgZmlsbD0iI0NCQ0JDQSIgY3g9IjIwMi40IiBjeT0iODQuMSIgcng9IjI0LjQiIHJ5PSIyNC4zIi8+DQoJPC9nPg0KPC9zdmc+"
Táboas de valores
Esta fórmula:
JSON( [1,2,3] )
Produce a cadea de texto [{"Valor":1},{"Valor":2},{"Valor":3}].
A mesma fórmula coa opción JSONFormat.FlattenValueTables:
JSON( [1,2,3], JSONFormat.FlattenValueTables )
Produce a cadea de texto [1,2,3].
Teña en conta que a opción FlattenValueTables non ten ningún impacto cando se usa JSON coas coleccións CityPopulations ou CitiesByCountry , xa que estas táboas non son táboas de valores. Unha táboa de valores ten unha única columna e debe chamarse "Valor".