PowerShell에서 파일에 JSON 개체 쓰기
PowerShell은 구조화된 데이터를 생성하는 데 사용할 수 있는 매우 강력한 개체 기반 언어입니다. 따라서 일반 텍스트보다 작업하기 쉽습니다.
PowerShell 사용자 지정 개체
PSCustomObject
는 PowerShell 개체의 기반입니다. 여기에는 속성과 값이 포함됩니다.
따라서 PowerShell은 JSON 개체도 처리할 수 있습니다.
예제 JSON에서 JSON 사용자 지정 개체를 만들어 보겠습니다. $MyJsonVar
변수에 JSON을 할당했습니다.
$MyJsonVar = @"
{
"ExampleJson":{
"Fruit1":{
"Name":"Apple",
"Price":"`$10.00"
}
}
}
"@
출력:
ConvertFrom-JSON
cmdlet을 사용하여 실제 JSON 개체를 만들어야 합니다. 그러면 실제 PSCustomObject
가 생성됩니다.
새로 생성된 JSON 객체를 $MyJsonObject
변수에 할당해 보겠습니다.
$MyJsonObject = $MyJsonVar | ConvertFrom-Json
새로 생성된 JSON 개체인 PSCustomObject
를 표시해 보겠습니다.
$MyJsonObject
출력:
속성으로 JSON 개체에 액세스할 수 있습니다.
$MyJsonObject.ExampleJson.Fruit1.Price
$MyJsonObject.ExampleJson.Fruit1.Name
출력:
따라서 $MyJsonObject
라는 적절한 PowerShell 사용자 지정 개체가 있는 것으로 확인되었습니다.
PowerShell JSON 개체를 JSON 문자열로
ConvertTo-Json
cmdlet은 기존 사용자 지정 개체를 JSON 문자열로 변환할 수 있습니다. 이것은 JSON 형식의 일반 텍스트가 됩니다.
통사론:
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
위의 모든 매개 변수는 ConvertTo-Json
cmdlet에 대한 선택 사항입니다.
-Depth
매개변수는 JSON 문자열의 레벨 수를 지정할 수 있습니다. 중요한 매개변수이며 매우 신중하게 사용해야 합니다.
이 매개변수를 잘못 사용하면 데이터가 손실될 수 있습니다. 기본값은 2입니다.
-InputObject
매개변수는 JSON 문자열로 변환해야 하는 사용자 지정 개체를 지정합니다. 사용자 지정 개체를 ConvertTo-Json
cmdlet에 쉽게 파이프할 수 있습니다.
파이프(|
)를 통해 $MyJsonObject
를 전송하여 사용자 지정 개체를 JSON 문자열로 변환할 수 있습니다.
$MyJsonObject | ConvertTo-Json
출력:
JSON 문자열을 파일에 저장
PowerShell을 사용하여 JSON 문자열을 파일에 저장할 수 있습니다. JSON 문자열 출력을 Out-File
cmdlet으로 파이프할 수 있습니다.
.json
파일을 생성해야 하는 경로를 지정할 수 있습니다.
$MyJsonObject | ConvertTo-Json | Out-File "D:\misc\example.json"
경로 "D\misc\example.json"
은 다를 수 있습니다. 이것은 주어진 디렉토리 구조 안에 example.json
파일을 생성할 것입니다.
출력:
JSON 사용자 정의 개체가 JSON 형식의 example.json
파일에 저장되었습니다.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.