2016-08-04 79 views
1

我想將包含字典結構的文件數據複製到PowerShell中。我貼的內容,現在我有一個變量叫$dns,這是它的內容:創建一個PowerShell的字典

{ 
    "ips": { 
       "10.20.30.40": [ 
             { 
              "rhost": "DNS Name1.", 
              "rdata": [ 
                 "10.20.30.40" 
                ], 
              "rrtype": "A (1)", 
              "ttl": 86400, 
              "geo": null, 
              "source": "DNSProvider1" 
             } 
            ], 
       "40.50.60.70": [ 
             { 
              "rhost": "DNS Name2.", 
              "rdata": [ 
                 "40.50.60.70" 
                ], 
              "rrtype": "A (1)", 
              "ttl": 86400, 
              "geo": null, 
              "source": "DNSProvider1" 
             } 
            ] 
      } 
} 

我想在其上運行一些操作,我應該把它轉換爲對象或其他什麼東西?

只是爲了澄清自己,當我使用這種Python中的對象,我可以使用這個對象是這樣的:

dns['ips'] 

結果看起來是這樣的:

{ 
'10.20.30.40': 
    [ 
     { 
      'geo': null, 
      'rdata': ['10.20.30.40'], 
      'rhost': 'DNS Name1.', 
      'rrtype': 'A (1)', 
      'source': 'DNSProvider1', 
      'ttl': 86400 
     } 
    ], 
'40.50.60.70': 
    [ 
     { 
      'geo': null, 
      'rdata': ['40.50.60.70'], 
      'rhost': 'DNS Name2.', 
      'rrtype': 'A (1)', 
      'source': 'DNSProvider1', 
      'ttl': 86400 
     } 
    ] 
} 

回答

1

您正在尋找cm3:

($dns | ConvertFrom-Json).ips 
+0

感謝馬丁,但它看起來像PowerShell不會承認「:」。 我得到的錯誤是: ConvertFrom-Json:無效的對象傳入,':'或'}'的預期。 (1):{ At line:1 char:9 +($ dns | ConvertFrom-Json).ips + ~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified :(:) [ConvertFrom-Json],參數EXP ception + FullyQualifiedErrorId:System.ArgumentException,Microsoft.PowerShell.Co mmands.ConvertFromJsonCommand –

+0

這在你的json中工作正常。你如何檢索'$ dns'? –

+0

$ dns = gc「c:\ path ....」。你是怎麼做到的? –

1

您可能需要-raw開關...

$dns = gc C:\tmp\dns.json -Raw 
($dns | ConvertFrom-Json).ips