Transformando la cadena JSON incrustada en la tabla SQL

Un usuario Pregunto ✅

bhmann

Tengo un Azure SQL DB que almacena datos JSON en una de las columnas. Una larga historia sobre por qué está estructurado de esta manera, pero la respuesta corta es «No, no puedo cambiar la forma en que se almacenan los datos». Así es como se ven los datos:

Datos en PBI

Cada variable tiene una etiqueta de cuatro dígitos [e.g. «7x3d»]y luego tiene un solo valor [e.g. «12»] o una matriz de dos variables anidadas, cada una con sus propios valores o matriz de valores [e.g.{«choice_values»:[«ABC», «123»]»otros_valores»: [«XKCD»]}.

El desafío al que me enfrento es cómo convertir la cadena de datos JSON en valores utilizables. Mi enfoque es usar una combinación de dividir por delimitador, filtrar o reemplazar caracteres para dividir la columna «form_values» en dos columnas (como una tabla sin pivotar) nombre de atributo [«7x3d»] y luego valores [«12»]. Lo que no puedo entender es la combinación correcta de pasos en Power Query para transformar la columna.

Dos preguntas:

  1. ¿Estoy en el camino correcto? ¿O hay alguna otra función (¿quizás Text.ToBinary?) que pueda analizar la cadena JSON? ¿Hay alguna manera de que Power BI reconozca que esta columna específica dentro de mi base de datos SQL es en realidad un JSON y luego use el enfoque típico para transformar registros/listas/etc. de JSON? en el editor avanzado?
  2. Si mi enfoque es sólido, ¿hay alguien más inteligente que yo que pueda descubrir cómo dividir las celdas individuales con cada registro JSON en filas por nombre de variable, sin perder las matrices anidadas? (ver mi ejemplo de manual a continuación)

Ejemplo manual de Excel

Hola @bhmann,

Para reconocer la cadena JSON incrustada en una tabla SQL, agregue una columna personalizada como esta:

Custom=Json.Document([ColumnName])

2 PNG

Luego, puede expandir la nueva columna para extraer los valores deseados.

Saludos,

Yuliana Gu

Hola @bhmann,

Para reconocer la cadena JSON incrustada en una tabla SQL, agregue una columna personalizada como esta:

Custom=Json.Document([ColumnName])

2 PNG

Luego, puede expandir la nueva columna para extraer los valores deseados.

Saludos,

Yuliana Gu

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *