json - Powershell加入2个不同的JSON文件
问题描述
我有 2 个 JSON 文件,我想合并它们以提取一些有意义的数据。第一个文件包含组和详细信息。第二个文件包含附加到组的记录列表。
文件 1:
{
"count": 1,
"results": [
{
"key": "card_sets",
"id": "551175"
}
],
"card_sets": {
"551175": {
"title": "Title",
"account_default": false,
"active_currencies": "EUR",
"default_currencies": "EUR GBP",
"destroyable": true,
"created_at": "2020-04-20T08:09:15-07:00",
"updated_at": "2020-04-20T08:09:15-07:00",
"id": "551175"
}
},
"meta": {
"count": 1,
"page_count": 1,
"page_number": 1,
"page_size": 200
}
}
文件 2:
{
"count": 1,
"results": [
{
"key": "cards",
"id": "847355"
}
],
"cards": {
"847355": {
"currency": "EUR",
"created_at": "2020-04-20T08:09:15-07:00",
"updated_at": "2020-04-20T08:09:15-07:00",
"card_set_id": "551175",
"id": "847355"
}
},
"meta": {
"count": 1,
"page_count": 1,
"page_number": 1,
"page_size": 200
}
}
为了清楚起见,我减少了输出。
我想要实现的是将这两个文件连接在一起,它们具有相应的 ID。
文件 1 的键是 card_sets.{id}.id
文件 2 的密钥是 card.{id}.card_set_id
我并不真正关心计数/结果/元元素中的任何结果,但我希望将一个看起来像的列表放在一起
File1.id、File1.title、File1.active_currencies、File2.id、File2.currency
我只使用了 PowerShell 一天半,刚刚获取 JSON 文件对我来说是一大步,但到目前为止我能找到的所有谷歌搜索都是基于相同的 json 文件合并为一个。这似乎有点复杂,我现在很难过。
有人可以帮忙吗?
解决方案
您可以尝试以下方法:
$json1 = Get-Content file1.json | ConvertFrom-Json
$json2 = Get-Content file2.json | ConvertFrom-Json
$cardsets = $json1.card_sets | Select-Object -Expand *
$cards = $json2.cards | Select-Object -Expand *
foreach ($cardset in $cardsets) {
$card = $cards | Where card_set_id -eq $cardset.id
if ($cardset.id -in $cards.card_set_id) {
[pscustomobject]@{
'File1.id' = $cardset.id
'File1.title' = $cardset.title
'File1.active_currencies' = $cardset.active_currencies
'File2.id' = $card.id
'File2.currency' = $card.currency
}
}
}
推荐阅读
- r - 是否有运行“空间向量自回归”的 R 包?
- javascript - 卸载组件时无法反转动画
- javascript - 如何将自定义行添加到 react-moveable 中?
- python - 从 url 读取特定的 'div' 和 'class' 属性,而无需读取整个 HTML 文档
- maven - 无法从 Maven 中的自定义 jar 访问类和方法
- javascript - VS Code jsconfig.json 似乎没有做任何事情
- swiftui - 将 UIWindow.rootView 转换为 UIHostingController
其中有环境变量 - java - 有什么我可以改变的,让它像它应该的那样工作吗
- python - 'ModelBase' 类型的 /products/ 对象的 TypeError 没有 len()
- python - 从 main() 中提取两个或三个较小的函数以更轻松地查找错误