จะเขียน JSON ลงในไฟล์ใน PowerShell ได้อย่างไร
ในบทช่วยสอน PowerShell นี้ ฉันจะอธิบายวิธีเขียน JSON ลงในไฟล์ใน PowerShell
หากต้องการเขียน JSON ลงในไฟล์ใน PowerShell คุณสามารถใช้ ConvertTo-Json cmdlet เพื่อแปลงออบเจ็กต์ PowerShell เป็นสตริง JSON จากนั้นส่งออกสตริงนี้ไปยังไฟล์โดยใช้ Out -ไฟล์ หรือ ชุดเนื้อหา ตัวอย่างเช่น:
$object | ConvertTo-Json | Set-Content -Path 'file.json'แนวทางนี้ง่ายและมีประสิทธิภาพสำหรับสถานการณ์ส่วนใหญ่ที่คุณต้องการบันทึกข้อมูล JSON จาก PowerShell ลงในไฟล์
วิธีที่ 1: ConvertTo-Json และ Out-File
หากต้องการเขียน JSON ลงในไฟล์ใน PowerShell คุณสามารถใช้ ConvertTo-Json cmdlet ซึ่งจะแปลงออบเจ็กต์ PowerShell ให้เป็นสตริงที่จัดรูปแบบ JSON เมื่อแปลงแล้ว คุณสามารถส่งออกสตริงไปยังไฟล์ได้โดยใช้ Out-File cmdlet
นี่เป็นตัวอย่างง่ายๆ:
# Create a PowerShell object
$person = @{
FirstName = 'James'
LastName = 'Karley'
Age = 30
}
# Convert the object to a JSON string
$json = $person | ConvertTo-Json
# Write the JSON string to a file
$json | Out-File -FilePath 'C:\MyFolder\person.json'
สคริปต์นี้สร้างแฮชเทเบิลที่เป็นตัวแทนของบุคคล แปลงเป็น JSON และเขียนลงในไฟล์ชื่อ person.json
คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์โดยใช้โค้ด VS
ตรวจสอบวิธีการแปลง JSON เป็น CSV ใน PowerShell
วิธีที่ 2: ConvertTo-Json และ Set-Content
อีกทางเลือกหนึ่งสำหรับ Out-File คือ Set-Content cmdlet ใน PowerShell ซึ่งจะมีประโยชน์อย่างยิ่งเมื่อคุณต้องการให้แน่ใจว่าการเข้ารหัสไฟล์ได้รับการตั้งค่าอย่างถูกต้อง เช่น UTF-8 ซึ่งมักจำเป็นสำหรับข้อมูล JSON
# Convert the object to a JSON string
$json = $person | ConvertTo-Json
# Write the JSON string to a file with UTF8 encoding
$json | Set-Content -Path 'person.json' -Encoding UTF8วิธีการนี้คล้ายกับวิธีก่อนหน้า แต่ระบุการเข้ารหัสเพื่อป้องกันปัญหาใดๆ เกี่ยวกับการแสดงอักขระในไฟล์ JSON
วิธีที่ 3: การใช้ Add-Content สำหรับการผนวกข้อมูล
หากคุณต้องการผนวกข้อมูล JSON เข้ากับไฟล์ที่มีอยู่ใน PowerShell คุณสามารถใช้ Add-Content cmdlet สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อบันทึกหรือเพิ่มอาร์เรย์ JSON ในไฟล์
# Additional person object
$additionalPerson = @{
FirstName = 'Jane'
LastName = 'Smith'
Age = 25
}
# Convert the additional person to JSON
$additionalJson = $additionalPerson | ConvertTo-Json
# Append the JSON string to the existing file
$additionalJson | Add-Content -Path 'C:\MyFolder\person.json'สคริปต์นี้จะเพิ่มเนื้อหา เพิ่มเติมJson ลงในไฟล์ people.json โดยไม่เขียนทับข้อมูลที่มีอยู่
คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่างหลังจากที่ฉันรันสคริปต์ PowerShell โดยใช้โค้ด VS
วิธีที่ 4: Export-Clixml สำหรับวัตถุที่ซับซ้อน
สำหรับออบเจ็กต์ที่ซับซ้อนมากขึ้นซึ่งอาจมีคุณสมบัติที่ ConvertTo-Json ไม่สามารถประมวลผลได้ คุณสามารถใช้ Export-Clixml cmdlet นี้จะส่งออกออบเจ็กต์ PowerShell ไปยังไฟล์ XML ซึ่งสามารถอ่านกลับได้ด้วย Import-Clixml
# Export the object to an XML file
$person | Export-Clixml -Path 'person.clixml'แม้ว่าจะไม่ใช่ JSON อย่างเคร่งครัด แต่วิธีนี้ก็รวมไว้เพื่อความสมบูรณ์เนื่องจากสามารถจัดการข้อมูลซีเรียลไลซ์ที่ซับซ้อนซึ่ง JSON อาจไม่สามารถทำได้
วิธีที่ 5: การใช้ไลบรารี JSON.net
เพื่อการควบคุมกระบวนการซีเรียลไลซ์ JSON อย่างสมบูรณ์ คุณสามารถใช้ไลบรารี Newtonsoft JSON.net ไลบรารีนี้มีคุณสมบัติมากกว่า PowerShell cmdlets ในตัว
ขั้นแรก คุณต้องติดตั้งไลบรารี:
# Install the Newtonsoft.Json library
Install-Package -Name Newtonsoft.Jsonจากนั้น คุณสามารถใช้มันเพื่อทำให้เป็นอนุกรมและเขียนข้อมูล JSON ได้:
# Load the Newtonsoft.Json assembly
Add-Type -Path 'C:\path\to\Newtonsoft.Json.dll'
# Serialize the object to JSON using JsonConvert
$json = [Newtonsoft.Json.JsonConvert]::SerializeObject($person)
# Write the JSON string to a file
Set-Content -Path 'person.json' -Value $json -Encoding UTF8วิธีการนี้มีประโยชน์อย่างยิ่งเมื่อต้องจัดการกับโครงสร้าง JSON ที่ซับซ้อน หรือเมื่อคุณต้องการปรับแต่งกระบวนการซีเรียลไลซ์นอกเหนือจากที่ cmdlet ConvertTo-Json นำเสนอ
บทสรุป
PowerShell นำเสนอหลายวิธีในการเขียนข้อมูล JSON ลงในไฟล์ ด้วยการใช้ ConvertTo-Json cmdlet กับ Out-File หรือ Set-Content คุณสามารถซีเรียลไลซ์และบันทึกข้อมูล JSON ได้อย่างง่ายดาย สำหรับการต่อท้ายข้อมูล Add-Content คือ cmdlet ที่ใช้งานสะดวก และสำหรับสถานการณ์ที่ซับซ้อนที่สุด การใช้ประโยชน์จากไลบรารี JSON.net มอบความยืดหยุ่นและพลังให้กับคุณในการจัดการการจัดลำดับ JSON ใน PowerShell ได้อย่างแม่นยำ
ในบทช่วยสอน PowerShell นี้ ฉันได้อธิบายวิธีเขียน JSON ลงในไฟล์ใน PowerShell โดยใช้วิธีต่างๆ

