質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

2回答

1246閲覧

POWERSHELL にて テキスト(カンマ区切り)ファイルからJSON形式に変換について

fmebg

総合スコア8

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

1クリップ

投稿2023/03/30 08:10

編集2023/03/30 08:14

POWERSHELLの勉強を兼ねて以下の様な事ができないか。を調査しておりますがどうもうまく行かなく考えております。

①テキストファイル(test.txt)

 11111,22222,33333,44444
aaaaaa,bbbbb,ccccc,dddddd

②仕様
上記を読み込み、JSON配列にしてInvoke-RestMethodにて送信したい。

③ロジック
$hash = @{'ITEM'=@{col1=@();col2=@();col3=@();col4=@()}}

$arr = Get-Content "C:\test.txt"

foreach ($value in $arr) {
$hash.col1 = $arr.split(",")[0]
$hash.col2 = $arr.split(",")[1]
$hash.col3 = $arr.split(",")[2]
$hash.col4 = $arr.split(",")[3]
}
$json =$hash | ConvertTo-Json

$json


★JSONのイメージとして

 ITEM=[{col1=11111,col2=22222,col3=33333,col4=44444},{col1=aaaaa,col2=bbbbb,col3=ccccc,col4=ddddd}]

と言う感じにしたいのですが、ご教授頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2023/03/30 08:43

ConvertTo-Json というコマンドレットを使います。
guest

回答2

0

■ファイルからJSON形式に変換するサンプルプログラム

PowerShell

1$e = [ordered]@{} 2$f = @() 3$arr = @(Get-Content "C:\test.txt") 4foreach ($value in $arr){ 5 $a = $value.split(",")[0] 6 $b = $value.split(",")[1] 7 $c = $value.split(",")[2] 8 $d = $value.split(",")[3] 9 $e = [ordered]@{col1=$a;col2=$b;col3=$c;col4=$d} 10 $f = $f + $e 11} 12$g = [ordered]@{} 13$g.ITEM = $f 14$g | ConvertTo-Json -Depth 100 15$g | ConvertTo-Json -Depth 100 -Compress 16 17<# 18■実行結果 19{ 20 "ITEM": [ 21 { 22 "col1": "11111", 23 "col2": "22222", 24 "col3": "33333", 25 "col4": "44444" 26 }, 27 { 28 "col1": "aaaaaa", 29 "col2": "bbbbb", 30 "col3": "ccccc", 31 "col4": "dddddd" 32 } 33 ] 34} 35{"ITEM":[{"col1":"11111","col2":"22222","col3":"33333","col4":"44444"},{"col1":"aaaaaa","col2":"bbbbb","col3":"ccccc","col4":"dddddd"}]} 36#>

※splitを使用しています。
※ITEMを追加しています。

投稿2023/04/05 11:24

ccc-

総合スコア342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

カラム数を決め打ちにしていますが、以下の様な感じでしょうか。

powershell

1$cols = (1..4) | %{ "col" + $_ } 2$json = Import-CSV "C:\test.txt" -Header $cols | ConvertTo-Json -Compress 3$json 4 5# [{"col1":"11111","col2":"22222","col3":"33333","col4":"44444"},{"col1":"aaaaaa","col2":"bbbbb","col3":"ccccc","col4":"dddddd"}]

投稿2023/03/30 09:08

編集2023/03/30 09:46
melian

総合スコア19803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問