2015-11-04 63 views
1

一直工作了一個小時,無法到達它的底部。下面的代碼建立哈希表的陣列,增加了該陣列到另一個散列表與一羣其他鍵 - 值對沿,然後轉換一大堆JSON:哈希表數組沒有被轉換爲JSON通過ConvertTo-Json

$01_ch_channel_hist_id = @{"ColumnName"="01_ch_channel_hist_id";"ColumnType"="bigint"} 
$02_ch_channel_id = @{"ColumnName"="02_ch_channel_id";"ColumnType"="bigint"} 
$08_ch_load_id = @{"ColumnName"="08_ch_load_id";"ColumnType"="bigint"} 
$columns = $01_ch_channel_hist_id,$02_ch_channel_id,$08_ch_load_id 
$ChannelDimH = @{} 
$ChannelDimH.Add("Columns",$columns) 
$ChannelDimH.Add("TableName","CHANNEL_DIM_H") 
$ChannelDimH.Add("UniqueColumn","channel_id") 
$tables = @() 
$tables += $ChannelDimH 
$sqoopOracleTableAndColumnMetadata = @{} 
$sqoopOracleTableAndColumnMetadata.Add("tables",$tables) 

$sqoopOracleTableAndColumnMetadata | ConvertTo-Json 

這裏是輸出:

{ 
    "tables": [ 
        { 
         "TableName": "CHANNEL_DIM_H", 
         "UniqueColumn": "channel_id", 
         "Columns": "System.Collections.Hashtable System.Collections.Hashtable System.Collections.Hashtable" 
        } 
       ] 
} 

注意,「列」陣內hastables得到返回:

"System.Collections.Hashtable System.Collections.Hashtable System.Collections.Hashtable" 

這些哈希表中的數據不會出現在我的JSON文件內。爲什麼不?

+0

啊我已經想通了。它的ConvertTo-Json的深度參數:$ sqoopOracleTableAndColumnMetadata | ConvertTo-Json -Depth 10 – jamiet

+0

很高興聽到你明白了,我正要提出'Depth'參數,因爲幾個月前我有同樣的問題。您應該將您的發現作爲答案發布,並將其標記爲解決問題的其他人的答案。 :) – Bluecakes

回答

1

想通了。 CallTo ConvertTo-Json需要深度指定

$01_ch_channel_hist_id = @{"ColumnName"="01_ch_channel_hist_id";"ColumnType"="bigint"} 
$02_ch_channel_id = @{"ColumnName"="02_ch_channel_id";"ColumnType"="bigint"} 
$08_ch_load_id = @{"ColumnName"="08_ch_load_id";"ColumnType"="bigint"} 
$columns = $01_ch_channel_hist_id,$02_ch_channel_id,$08_ch_load_id 
$ChannelDimH = @{} 
$ChannelDimH.Add("Columns",$columns) 
$ChannelDimH.Add("TableName","CHANNEL_DIM_H") 
$ChannelDimH.Add("UniqueColumn","channel_id") 
$tables = @() 
$tables += $ChannelDimH 
$sqoopOracleTableAndColumnMetadata = @{"tables"=$tables} 
#$sqoopOracleTableAndColumnMetadata.Add("tables",$tables) 

$sqoopOracleTableAndColumnMetadata | ConvertTo-Json -Depth 4