现在已经工作了一个小时,无法触及它的底部。下面的代码构建了一个哈希表数组,将该数组添加到另一个哈希表以及一堆其他键值对,然后将整个数组转换为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 :(得分:2)
想出来。调用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