使用powershell处理JSON文件(深度)

问题描述 投票:0回答:1

我想循环一个JSON文件和每个parentitem,我想将子项目写入SQL查询。查询工作正常,但我不知道如何在parentitem中输入子项。

我的JSON文件看起来像这样

{
  "cp9385930" : {
    "macAddress" : "djxnkd",
    "productName" : "cp9385930",
    "serialNumber" : "cndndj"
  },
  "cp93875" : {
    "macAddress" : "dnnf",
    "productName" : "cp93875",
    "serialNumber" : "ndnd"
  },
  "cp94774" : {
    "macAddress" : "dncnd",
    "productName" : "cp94774",
    "serialNumber" : "xjxjr"
  },
  "jfiskn" : {
    "macAddress" : "cnfnd",
    "productName" : "jfiskn",
    "serialNumber" : "xhfn"
  },
  "zb9485" : {
    "macAddress" : "cndkkdc",
    "productName" : "zb9485",
    "serialNumber" : "dfsa3"
  }
}

我试过了

$json = Get-Content -path c:\export.json | Out-String | ConvertFrom-Json

我无法在parentitem中输入信息 - 深度1(?)。我搜索了一段时间,但无法解决我的问题。 Scripting-Guy无法帮助我解决这个问题。

输出:

cp9385930 : @{macAddress=djxnkd; productName=cp9385930; serialNumber=cndndj}
cp93875   : @{macAddress=dnnf; productName=cp93875; serialNumber=ndnd}
cp94774   : @{macAddress=dncnd; productName=cp94774; serialNumber=xjxjr}
jfiskn    : @{macAddress=cnfnd; productName=jfiskn; serialNumber=xhfn}
zb9485    : @{macAddress=cndkkdc; productName=zb9485; serialNumber=}

$json.cp9385930 - >和我可以输入的其他parentitemnames,但我不知道如何循环它并将其发送到查询。

我觉得它很容易处理。请给我一个提示:)

json powershell
1个回答
0
投票

没有真正解决问题,但它解决了我的问题。

$request = get-Content -Path C:\export1.json | out-string | convertfrom-json
$request1 = $request | Get-member -MemberType NoteProperty | Select Name

我通过选择名称输出请求所有名称:

cp9385930 
cp93875   
cp94774   
jfiskn  

在变量拥有名称后,我继续

ForEach($item in $request1){

$request.($item.Name).serialNumber
$request.($item.Name).productName
$request.($item.Name).macAddress

}

不是最聪明的方式,但我可以在不更改数据库中的json结构的情况下查询json

谢谢你的帮助!保罗

© www.soinside.com 2019 - 2024. All rights reserved.