Forum Discussion

GregLukas's avatar
GregLukas
New Member
5 years ago
Solved

JSON - Expand Multiple Arrays to Columns

Hi,    I am struggling to properly import the following JSON data structure into PowerBI Desktop:      { "items": [ { "id": "E1", "stat": [ { "columnA": ...
  • CNENFRNL's avatar
    5 years ago

    GregLukas , you might want to try,

    let
        Source = Json.Document("{
      ""items"": [
        {
          ""id"": ""E1"",
          ""stat"": [
              {
                ""columnA"": [
                  ""E1valA1"",
                  ""E1valA2"",
                  ""E1valA3"",
                  ""E1valA4""
                ],
                ""columnB"": [
                  ""E1valB1"",
                  ""E1valB2"",
                  ""E1valB3"",
                  ""E1valB4""
                ]
              }
          ]
        },
        {
          ""id"": ""E2"",
          ""stat"": [
              {
                ""columnA"": [
                  ""E2valA1"",
                  ""E2valA2"",
                  ""E2valA3"",
                  ""E2valA4""
                ],
                ""columnB"": [
                  ""E2valB1"",
                  ""E2valB2"",
                  ""E2valB3"",
                  ""E2valB4""
                ]
              }
          ]
        }
      ]
    }"),
        items = Source[items],
        #"Converted to Table" = Table.FromList(items, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
        #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "stat"}, {"id", "stat"}),
        #"Expanded stat" = Table.ExpandListColumn(#"Expanded Column1", "stat"),
    
    //major step of the solution
        Custom1 = Table.TransformColumns(#"Expanded stat", {"stat", each Table.FromColumns(Record.ToList(_))}),
    
        #"Expanded stat1" = Table.ExpandTableColumn(Custom1, "stat", {"Column1", "Column2"}, {"Column1", "Column2"})
    in
        #"Expanded stat1"