从 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 文件中提取子字符串的主要内容,如果未能解决你的问题,请参考以下文章

使用 PowerShell 将 Chrome 和 Edge Chromium 中的书签 JSON 文件合并到一个文件中?

使用 Powershell 解析从 Web 请求返回的 JSON 字节流而不写入文件

powershell 从DXA实现中的所有页面获取JSON页面内容

powershell 从DXA实现中的所有页面获取JSON页面内容

PowerShell重命名文件夹中的文件For循环错误

从 PowerShell 将 NULL 插入数据库