从 powershell 中的 JSON 文件中提取子字符串

Posted

技术标签:

【中文标题】从 powershell 中的 JSON 文件中提取子字符串【英文标题】:Extract a substring from a JSON file in powershell 【发布时间】:2022-01-16 06:00:30 【问题描述】:

我有一个包含字符串、子字符串和数组组合的 Json 文件,如下所示。

我尝试使用 psobject 获取 Id 并将 JSON 文件读取为 RAW,但没有锻炼。

$json = (Get-Content "C:\Users\rasto\OneDrive\Desktop\Job_board\output.json" -Raw) | ConvertFrom-Json

$json.psobject.TypeNames.item

我还尝试运行循环,但效果不佳。

$data = Get-Content "Path to json file" | Out-String | ConvertFrom-Json

foreach ($line in $data) 
     $line.id

Json 文件:


    "data":  [
                 
                     "id":  "146993",
                     "text":  "value1"
                 ,
                 
                     "id":  "14699",
                     "text":  "value2"
                 
             ],
    "meta":  
                 "newest_id":  "146",
                 "oldest_id":  "146",
                 "result_count":  79
             

我想使用 PowerShell 提取字段“id”中的值。

输出:

146993 14699

【问题讨论】:

【参考方案1】:

$data 不是一个数组,所以循环它不会有任何区别。您需要取消对根对象的 data 成员的引用,以获取包含具有 id 属性的对象的数组:

$data = Get-Content "Path to json file" |ConvertFrom-Json
$IDs = $data.data.id

【讨论】:

帮助谢谢! @Mathias R Jessen

以上是关于从 powershell 中的 JSON 文件中提取子字符串的主要内容,如果未能解决你的问题,请参考以下文章