Json.FromValue

La función Json.FromValue devuelve una representación en formato JSON del valor indicado.

Sintaxis

Json.FromValue(
    value as any,
    optional encoding as nullable number
) as binary

Parámetros
  • value: valor a convertir a formato JSON
  • encoding: (opcional) codificación a aplicar al texto resultante
Información adicional

Si no se especifica una codificación, se utiliza UTF8 por defecto.

Los valores son convertidos en función de su tipo:

  • valores null, de texto y booleanos se representan con los tipos equivalentes JSON
  • los números se representan como tales salvo #infinity, -#infinity y #nan, que son convertidos a null.
  • Las listas son representadas como arrays JSON
  • Los registros son representados como objetos JSON
  • Las tablas son representadas como arrays de objetos
  • Valores de tipo date, time, datetime, datetimezone y duration son representados como textos ISO 8601
  • Los valores binarios son representados como texto codificado base-64.
  • Los tipos y las funciones devuelven un error
Ejemplos

Para probar esta función partimos de la siguiente tabla que leemos desde Power BI:

Tabla de datos

El conjunto de instrucciones M que cargan esta tabla, promociona encabezados y aplica tipos por defecto es el siguiente:

Instrucciones M

Añadimos ahora una instrucción que genere el equivalente a la tabla en formato JSON y otra que convierta el resultado en texto:

let
    Source = Excel.Workbook(File.Contents("D:\Downloads\sales.xlsx"), null, true),
    Hoja1_Sheet = Source{[Item="Hoja1",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Hoja1_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Category", type text}, {"Sales", Int64.Type}}),
    json = Json.FromValue(#"Changed Type"),
    text_output = Text.FromBinary(json)
in
    text_output

Instrucciones M

El resultado es el siguiente:

[{"Category":"Furniture","Sales":160},{"Category":"Bicycles","Sales":53},{"Category":"Computers","Sales":68},{"Category":"TV","Sales":112}]

Función M Json.FromValue
Categoría
Funciones de texto
Submitted by admin on Thu, 07/23/2020 - 10:19