当外键在 JSON 数组中时,在 Power BI 中建立一对多关系?

Build one to many relationship in PowerBI, when foreign keys are inside JSON array?

我是 Power BI 的新手,我的第一个任务是连接到 JSON 数据源,我对包含键的数组有疑问。一些上下文,假设我们有用户和工厂:

用户

[
    {
    "email": "user1@foo-bar.com",
    "user_id": "user1-id",
    "factory": ['factoryId1']
  },
  {
    "email": "user2@foo-bar.com",
    "user_id": "user2-id",
    "factory": ['factoryId2', 'factoryId1']
  }
]

工厂

[
  {
    "factoryId": 'factoryId1',
    "factoryName": "London"
  },
  {
    "factoryId": 'factoryId2',
    "factoryName": "Moscow"
  }
]

现在我想建立的关系是:

+----------+------------+
| user_id  | factory_Id |
+----------+------------+
| user1-id | factoryId1 |
| user2-id | factoryId1 |
| user2-id | facotryId2 |
+----------+------------+

我试过使用 "Add as new Query" 选项:

转换为 table 并展开行后,我 几乎 得到了想要的结果:

+------------+
| factory_Id |
+------------+
| factoryId1 |
| factoryId1 |
| facotryId2 |
+------------+

这里唯一缺少的是用户 ID。如何添加这些 ID? (或者也许有更简单的方法来做到这一点?)

使用"Expand to New Rows"(点击双箭头图标)

M 查询将如下所示:

let
    Source = Json.Document(File.Contents("C:\Users\gluisotto\Desktop\json.json")),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"email", "user_id", "factory"}, {"Column1.email", "Column1.user_id", "Column1.factory"}),
    #"Expanded Column1.factory1" = Table.ExpandListColumn(#"Expanded Column1", "Column1.factory")
in
    #"Expanded Column1.factory1"