我正面临以下问题。我想从API中下载JSON格式的数据。它的schema是这样的:
{'content':[{'id':12345,
'date':2023-07-25,
-more fields-
'car':{'Ford':{'color','year'}, 'Suzuki':{'color','year'}},
},
{
'id':45678,
'date':2023-07-24,
-more fields-
'car':{'Ford':{'color','year'}, 'Suzuki':{'color','year'}}
},
{
'id':98765,
'date':2023-07-23,
-more fields-
'car':{'Ford':{'color','year'}, 'Suzuki':{'color','year'}}
}],
'numOfPages':100,
'totalElements':1000
}
字符串
因此,返回的JSON有三个字段,numOfPages
和totalElements
描述了整个数据集,但在['content']
中,我可以访问具有相同模式的多个数据实体,即Readings。我想将数据加载到Kusto Data Explorer表中,其中单个实体如下:
{'id':12345,
'date':2023-07-25,
-more fields-
'car':{'Ford':{'color','year'}, 'Suzuki':{'color','year'}},
}
型
进入单列,具有不同ID的数据在不同的行中。我使用ADF web activities从API中收集这种格式的数据,但我很难进行适当的Map,因为不清楚如何访问JSON 'Content'
字段的根并将实体划分为不同的行,因此如果我的JSON在'Content'
中有5个实体,它将在Kusto Table中生成5行,该模式现在是单列Readings,稍后我将使用ADF元数据添加更多列。
1条答案
按热度按时间frebpwbc1#
我用下面的示例数据尝试了你的场景。
字符串
在这里,如果你想得到数组
Content
作为表中的行值,那么列值numOfPages
,totalElements
也将作为数组中的行数重复。在这里,我使用高级编辑器在复制活动中给出了以下Map。
的数据
根据您的要求给予目标的数据类型。但是对于像
car
这样的列,只能使用字符串类型。当我使用dynamic
并禁用上面的**Map complex values to string
**选项时,我得到了下面的错误,说不支持该对象。的
因此,我在目标中为对象列选择了字符串数据类型。
目标表:
的
在ADX中使用
parse_json()
将JSON字符串用作JSON对象。的