标题: [问题求助] 【已解决】利用powershell取json同组下的某一键的值 [打印本页]
作者: 5i365 时间: 2022-5-8 09:51 标题: 【已解决】利用powershell取json同组下的某一键的值
本帖最后由 5i365 于 2022-5-15 09:07 编辑
我只知道JSON文件中的 album_id 和 album_audio_id 两个值, 想利用这两个值, 来获取同一组下的hash键的值, 求路过高手帮忙, 提前感谢
$album_id=37376237
$album_audio_id=255787470
________________________________________________________________JSON文件内容
{
"data": {
"timestamp": 1651972245,
"total": 44,
"info": [
{
"hash": "A5D06A9BD3CC35FF866522F955C095C0",
"album_id": "37376237",
"album_audio_id": 255787470,
"trans_param": {
"sort": 42,
"cpy_grade": 5,
"classmap": {
"attr0": 100798472
},
"cid": 98259926,
},
"filename": "汪苏泷 - 不分手的恋爱",
},
{
"hash": "31DFACD6F8CD5A73EA087DD7197BA9D7",
"album_id": "37376237",
"album_audio_id": 174466641,
"trans_param": {
"sort": 43,
"cpy_grade": 5,
"classmap": {
"attr0": 100798472
},
"cid": 98259995,
},
"filename": "汪苏泷 - 你让我懂",
},
{
"hash": "48E55ADA95ECA6E5EA4EEC58E22D94DD",
"album_id": "37376237",
"album_audio_id": 174452241,
"trans_param": {
"sort": 44,
"cpy_grade": 5,
"classmap": {
"attr0": 100798472
},
"cid": 98259994,
},
"filename": "汪苏泷 - 小星星",
}
]
},
"errcode": 0,
"status": 1,
"error": ""
}
作者: went 时间: 2022-5-8 15:21
- cls
- #查找数据
- $album_id=37376237
- $album_audio_id=255787470
- #解析json
- $json = (Get-Content '1.json' -Raw) -replace '(?s),(?=\s*\})','' | ConvertFrom-Json
- $json.data.info | Where-Object { $_.album_id -eq $album_id -and $_.album_audio_id -eq $album_audio_id } | foreach {
- $_.hash
- }
复制代码
作者: 5i365 时间: 2022-5-8 17:33
$json = (Get-Content '1.json' -Raw) -replace '(?s),(?=\s*\})',''
大侠,请教一下, 这个替换不加, 好像也能取到值, 不用有什么别的影响吗?
作者: went 时间: 2022-5-8 17:50
回复 3# 5i365
可能是你一楼截取的文本和你的json内容不一样,json对象的最后一个属性结束有多余的逗号
作者: 5i365 时间: 2022-5-8 18:37
回复 4# went
明白了, 多谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |