Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
BjorntobeWild
Frequent Visitor

Importing nested json as datasource

Hi,

 

I'm having a json-file with the following structure:

{
"DataSource": {
"Id": "b94809c324ee4ab5b7dfa81e00b1e535",
"Name": "Storingen",
"Headers": [
{
"Name": "ID",
"DisplayAt": "None"
},
{
"Name": "Datum storing",
"DisplayAt": "Title"
},
{
"Name": "Tijdstip melding",
"DisplayAt": "None"
},
{
"Name": "Projectnummer",
"DisplayAt": "None"
},
{
"Name": "Projectnaam",
"DisplayAt": "None"
},
{
"Name": "Servicemonteur",
"DisplayAt": "None"
},
{
"Name": "Start reistijd",
"DisplayAt": "None"
},
{
"Name": "starttijd werkzaamheden",
"DisplayAt": "None"
},
{
"Name": "eindtijd werkzaamheden",
"DisplayAt": "None"
},
{
"Name": "eind reistijd",
"DisplayAt": "None"
},
{
"Name": "omschrijving storing",
"DisplayAt": "None"
},
{
"Name": "oorzaak storing",
"DisplayAt": "None"
},
{
"Name": "omschrijving werkzaamheden",
"DisplayAt": "None"
},
{
"Name": "aanbevelingen",
"DisplayAt": "None"
},
{
"Name": "verbruikte materialen",
"DisplayAt": "None"
},
{
"Name": "zoekstring",
"DisplayAt": "None"
},
{
"Name": "categorie_ID",
"DisplayAt": "None"
},
{
"Name": "melding_van",
"DisplayAt": "None"
}
],
"Rows": [
[
"073a7f4a-4ac6-4f3f-8f39-a89400d1116b",
"2018-02-26",
"13:41:00",
"104",
"Projectnaam X",
"Name of mechanic",
"11:00:00",
"11:30:00",
"12:45:00",
"13:15:00",
"Description",
"Onbekend",
"Some text",
"The solution.",
null,
"Search string",
"1",
null
],
[
"4081210e-8abf-42df-8a18-a89400d514e6",
"2018-02-27",
"13:55:00",
"177",
"Projectnaam Y",
"Name of mechanic",
"11:00:00",
"11:30:00",
"12:45:00",
"13:15:00",
"Description",
"Onbekend",
"Some text",
"The solution.",
null,
"Search string",
"6",
null
],
],
"TotalRows": 367,
"LastUpdated": "2022-10-14T19:06:29.4870000Z",
"CompanyId": 12345
}
}

 

I would like to get all the Rows from the json file into my table. I've been puzzling around for a few hours with converting to table and expanding headers and lists, but I don't get the result I want.

The best result I get is that all the rows are vissable in one column. But I have (and need) 18 columns with all the values in the right column.

 

Can anybody tell me how to achieve my goal?

1 ACCEPTED SOLUTION
BjorntobeWild
Frequent Visitor

I figured it out.

I had to add a custom column with the following code:

#"Aangepaste kolom toegevoegd" = Table.AddColumn(#"DataSource.Rows uitgevouwen", "Aangepast", each Table.Transpose(Table.FromList([DataSource.Rows],Splitter.SplitByNothing(),null,null,ExtraValues.Error)))

 

let
Bron = Json.Document(Web.Contents("URL")),
#"Geconverteerd naar tabel" = Table.FromRecords({Bron}),
#"DataSource uitgevouwen" = Table.ExpandRecordColumn(#"Geconverteerd naar tabel", "DataSource", {"Id", "Name", "Headers", "Rows", "TotalRows", "LastUpdated", "CompanyId"}, {"DataSource.Id", "DataSource.Name", "DataSource.Headers", "DataSource.Rows", "DataSource.TotalRows", "DataSource.LastUpdated", "DataSource.CompanyId"}),
#"DataSource.Rows uitgevouwen" = Table.ExpandListColumn(#"DataSource uitgevouwen", "DataSource.Rows"),
#"Aangepaste kolom toegevoegd" = Table.AddColumn(#"DataSource.Rows uitgevouwen", "Aangepast", each Table.Transpose(Table.FromList([DataSource.Rows],Splitter.SplitByNothing(),null,null,ExtraValues.Error))),
#"Andere kolommen verwijderd" = Table.SelectColumns(#"Aangepaste kolom toegevoegd",{"Aangepast"}),
#"Aangepast uitgevouwen" = Table.ExpandTableColumn(#"Andere kolommen verwijderd", "Aangepast", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18"}, {"Aangepast.Column1", "Aangepast.Column2", "Aangepast.Column3", "Aangepast.Column4", "Aangepast.Column5", "Aangepast.Column6", "Aangepast.Column7", "Aangepast.Column8", "Aangepast.Column9", "Aangepast.Column10", "Aangepast.Column11", "Aangepast.Column12", "Aangepast.Column13", "Aangepast.Column14", "Aangepast.Column15", "Aangepast.Column16", "Aangepast.Column17", "Aangepast.Column18"}),
#"Custom rename" = Table.RenameColumns(#"Aangepast uitgevouwen",List.Zip({Table.ColumnNames(#"Aangepast uitgevouwen"),#"Kolomnamen"[DataSource.Headers.Name]})),
#"Kolommen verwijderd" = Table.RemoveColumns(#"Custom rename",{"ID"}),
#"Type gewijzigd1" = Table.TransformColumnTypes(#"Kolommen verwijderd",{{"Tijdstip melding", type time}, {"Datum storing", type date}, {"Projectnummer", Int64.Type}, {"Projectnaam", type text}, {"Servicemonteur", type text}, {"Start reistijd", type time}, {"starttijd werkzaamheden", type time}, {"eindtijd werkzaamheden", type time}, {"eind reistijd", type time}, {"omschrijving storing", type text}, {"oorzaak storing", type text}, {"omschrijving werkzaamheden", type text}, {"aanbevelingen", type text}, {"verbruikte materialen", type text}, {"zoekstring", type text}, {"categorie_ID", Int64.Type}, {"melding_van", type text}}),
#"Aangepaste kolom toegevoegd1" = Table.AddColumn(#"Type gewijzigd1", "Tijdstip storingsmelding", each [Datum storing] & [Tijdstip melding]),
#"Volgorde van kolommen gewijzigd" = Table.ReorderColumns(#"Aangepaste kolom toegevoegd1",{"Tijdstip storingsmelding", "Datum storing", "Tijdstip melding", "Projectnummer", "Projectnaam", "Servicemonteur", "Start reistijd", "starttijd werkzaamheden", "eindtijd werkzaamheden", "eind reistijd", "omschrijving storing", "oorzaak storing", "omschrijving werkzaamheden", "aanbevelingen", "verbruikte materialen", "zoekstring", "categorie_ID", "melding_van"}),
#"Type gewijzigd" = Table.TransformColumnTypes(#"Volgorde van kolommen gewijzigd",{{"Tijdstip storingsmelding", type datetime}}),
#"Aangepaste kolom toegevoegd2" = Table.AddColumn(#"Type gewijzigd", "Dagnaam", each Date.DayOfWeekName([Tijdstip storingsmelding], "nl-NL")),
#"Aangepaste kolom toegevoegd3" = Table.AddColumn(#"Aangepaste kolom toegevoegd2", "Dagnummer", each Date.DayOfWeek([Tijdstip storingsmelding], 1))
in
#"Aangepaste kolom toegevoegd3"

 

View solution in original post

3 REPLIES 3
BjorntobeWild
Frequent Visitor

I figured it out.

I had to add a custom column with the following code:

#"Aangepaste kolom toegevoegd" = Table.AddColumn(#"DataSource.Rows uitgevouwen", "Aangepast", each Table.Transpose(Table.FromList([DataSource.Rows],Splitter.SplitByNothing(),null,null,ExtraValues.Error)))

 

let
Bron = Json.Document(Web.Contents("URL")),
#"Geconverteerd naar tabel" = Table.FromRecords({Bron}),
#"DataSource uitgevouwen" = Table.ExpandRecordColumn(#"Geconverteerd naar tabel", "DataSource", {"Id", "Name", "Headers", "Rows", "TotalRows", "LastUpdated", "CompanyId"}, {"DataSource.Id", "DataSource.Name", "DataSource.Headers", "DataSource.Rows", "DataSource.TotalRows", "DataSource.LastUpdated", "DataSource.CompanyId"}),
#"DataSource.Rows uitgevouwen" = Table.ExpandListColumn(#"DataSource uitgevouwen", "DataSource.Rows"),
#"Aangepaste kolom toegevoegd" = Table.AddColumn(#"DataSource.Rows uitgevouwen", "Aangepast", each Table.Transpose(Table.FromList([DataSource.Rows],Splitter.SplitByNothing(),null,null,ExtraValues.Error))),
#"Andere kolommen verwijderd" = Table.SelectColumns(#"Aangepaste kolom toegevoegd",{"Aangepast"}),
#"Aangepast uitgevouwen" = Table.ExpandTableColumn(#"Andere kolommen verwijderd", "Aangepast", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18"}, {"Aangepast.Column1", "Aangepast.Column2", "Aangepast.Column3", "Aangepast.Column4", "Aangepast.Column5", "Aangepast.Column6", "Aangepast.Column7", "Aangepast.Column8", "Aangepast.Column9", "Aangepast.Column10", "Aangepast.Column11", "Aangepast.Column12", "Aangepast.Column13", "Aangepast.Column14", "Aangepast.Column15", "Aangepast.Column16", "Aangepast.Column17", "Aangepast.Column18"}),
#"Custom rename" = Table.RenameColumns(#"Aangepast uitgevouwen",List.Zip({Table.ColumnNames(#"Aangepast uitgevouwen"),#"Kolomnamen"[DataSource.Headers.Name]})),
#"Kolommen verwijderd" = Table.RemoveColumns(#"Custom rename",{"ID"}),
#"Type gewijzigd1" = Table.TransformColumnTypes(#"Kolommen verwijderd",{{"Tijdstip melding", type time}, {"Datum storing", type date}, {"Projectnummer", Int64.Type}, {"Projectnaam", type text}, {"Servicemonteur", type text}, {"Start reistijd", type time}, {"starttijd werkzaamheden", type time}, {"eindtijd werkzaamheden", type time}, {"eind reistijd", type time}, {"omschrijving storing", type text}, {"oorzaak storing", type text}, {"omschrijving werkzaamheden", type text}, {"aanbevelingen", type text}, {"verbruikte materialen", type text}, {"zoekstring", type text}, {"categorie_ID", Int64.Type}, {"melding_van", type text}}),
#"Aangepaste kolom toegevoegd1" = Table.AddColumn(#"Type gewijzigd1", "Tijdstip storingsmelding", each [Datum storing] & [Tijdstip melding]),
#"Volgorde van kolommen gewijzigd" = Table.ReorderColumns(#"Aangepaste kolom toegevoegd1",{"Tijdstip storingsmelding", "Datum storing", "Tijdstip melding", "Projectnummer", "Projectnaam", "Servicemonteur", "Start reistijd", "starttijd werkzaamheden", "eindtijd werkzaamheden", "eind reistijd", "omschrijving storing", "oorzaak storing", "omschrijving werkzaamheden", "aanbevelingen", "verbruikte materialen", "zoekstring", "categorie_ID", "melding_van"}),
#"Type gewijzigd" = Table.TransformColumnTypes(#"Volgorde van kolommen gewijzigd",{{"Tijdstip storingsmelding", type datetime}}),
#"Aangepaste kolom toegevoegd2" = Table.AddColumn(#"Type gewijzigd", "Dagnaam", each Date.DayOfWeekName([Tijdstip storingsmelding], "nl-NL")),
#"Aangepaste kolom toegevoegd3" = Table.AddColumn(#"Aangepaste kolom toegevoegd2", "Dagnummer", each Date.DayOfWeek([Tijdstip storingsmelding], 1))
in
#"Aangepaste kolom toegevoegd3"

 

Anonymous
Not applicable

Hi @BjorntobeWild ,

 

Can you share a sample output in table format? This will be very helpful, thanks!

 

Best Regards,
Gao

Community Support Team

 

If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly. If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

How to get your questions answered quickly -- How to provide sample data

Hi Gao,

 

The result has to be like the table below.

IDDatum storingTijdstip meldingProjectnummerProjectnaamServicemonteurStart reistijdstarttijd werkzaamhedeneindtijd werkzaamhedeneind reistijdomschrijving storingoorzaak storingomschrijving werkzaamhedenaanbevelingenverbruikte materialenzoekstringcategorie_IDmelding_van
073a7f4a-4ac6-4f3f-8f39-a89400d1116b2018-02-2613:41:00104Projectnaam XName of Mechanic11:00:0011:30:0012:45:0013:15:00DescriptionOnbekendSome tekstThe solutionSearch string1 
4081210e-8abf-42df-8a18-a89400d514e62018-02-2713:55:00177Projectnaam YName of Mechanic10:30:0011:30:0015:15:0016:15:00DescriptionOnbekendSome tekstThe solutionSearch string6 

 

If you need more info, just let me know.

 

Kind regards,

Björn

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors