1

我需要将数据条目插入 PowerApps 中的 Common Data Service(CDS) 实体。这就是我的实体的样子:

CDS 中的实体

现在,如果我尝试通过导入 excel 表来插入条目,如下所示,power query 会正确地将其解释为自己的表。

表格

步骤 =>“获取数据”>“Excel”>“浏览”(onedrive)

对应PowerQuery解读

但是,如果我尝试通过 JSON 文件执行相同的操作,则无法将其分解为属性。

示例 JSON:

[
  {
    "patientID": "p1",
    "phoneNumber": 9876543210,
    "patientName": "Abc",
    "DOB": "17/06/2006",
    "Address": "Hyderabad"
  },
  {
    "patientID": "p2",
    "phoneNumber": 9976543210,
    "patientName": "def",
    "DOB": "17/06/2006",
    "Address": "Hyderabad"
  },
  {
    "patientID": "p3",
    "phoneNumber": 9996543210,
    "patientName": "ghi",
    "DOB": "17/06/2006",
    "Address": "Hyderabad"
  }
]

步骤 => '获取数据' > 'JSON' > '浏览' (onedrive)

PowerQuery的对应解释: 第一的

那么如果我们进入第一条记录: 第二

现在这应该被解释为一个 5 列的表,而不是一个 2 列的“键”和“值”作为 2 列的表。

一个可能的解决方案是:“转换为表格”>“转换表格-转置”>“转换表格-使用第一行作为标题”

这给出了以下结果: 第三

但它仍然只是一个记录,应该是 3 个记录。

如何以与处理 Excel 表相同的方式将 JSON 文件转换为表?JSON应该以不同的方式编写吗?

4

1 回答 1

2

获得记录列表后,将表达式传递给Table.FromRecords函数。它会给你预期的输出。

给你举个例子:

let
    serialised = "[{""patientID"": ""p1"",""phoneNumber"": 9876543210,""patientName"": ""Abc"",""DOB"": ""17/06/2006"",""Address"": ""Hyderabad""},{""patientID"": ""p2"",""phoneNumber"": 9976543210,""patientName"": ""def"",""DOB"": ""17/06/2006"",""Address"": ""Hyderabad""},{""patientID"": ""p3"",""phoneNumber"": 9996543210,""patientName"": ""ghi"",""DOB"": ""17/06/2006"",""Address"": ""Hyderabad""}]",
    json = Json.Document(serialised),
    toTable = Table.FromRecords(json)
in
    toTable

这给了我:

输出

于 2019-06-15T19:59:40.057 回答