Swift:
การทำงานกับ YAML
วิธีการ:
Swift ไม่มีการรองรับการแยกวิเคราะห์และการซีเรียลไลซ์ YAML โดยตรง จำเป็นต้องใช้ไลบรารีภายนอก ตัวเลือกที่ได้รับความนิยมคือ Yams
, ไลบรารีสำหรับการทำงานกับ YAML ใน Swift
ก่อนอื่น, คุณต้องเพิ่ม Yams
ลงในโปรเจกต์ของคุณ หากคุณใช้ Swift Package Manager, คุณสามารถเพิ่มมันเป็นการพึ่งพาในไฟล์ Package.swift
ของคุณ:
dependencies: [
.package(url: "https://github.com/jpsim/Yams.git", from: "4.0.0")
]
การแยกวิเคราะห์ YAML เป็น Swift
ถ้าสมมติว่าคุณมีการกำหนดค่า YAML สำหรับแอปพลิเคชันง่ายๆ ดังนี้:
name: MyApp
version: 1.0
environment: development
features:
- login
- notifications
นี่คือวิธีที่คุณสามารถแยกวิเคราะห์สตริง YAML ใน Swift โดยใช้ Yams
:
import Yams
let yamlString = """
name: MyApp
version: 1.0
environment: development
features:
- login
- notifications
"""
do {
if let data = try Yams.load(yaml: yamlString) as? [String: Any] {
print(data)
// ตัวอย่างการเข้าถึงข้อมูลที่แยกวิเคราะห์ได้
if let name = data["name"] as? String {
print("App Name: \(name)")
}
}
} catch {
print("ข้อผิดพลาดในการแยกวิเคราะห์ YAML: \(error)")
}
ผลลัพธ์ตัวอย่าง:
["name": MyApp, "version": 1.0, "environment": "development", "features": ["login", "notifications"]]
App Name: MyApp
การซีเรียลไลซ์อ็อบเจกต์ Swift เป็น YAML
การแปลงอ็อบเจกต์ Swift กลับเป็นสตริง YAML ก็เป็นเรื่องง่ายเช่นกันด้วย Yams
สมมติว่าคุณมีโครงสร้างข้อมูลเดียวกันที่ต้องการถูกซีเรียลไลซ์:
let appInfo = [
"name": "MyApp",
"version": 1.0,
"environment": "development",
"features": ["login", "notifications"]
] as [String : Any]
do {
let yamlString = try Yams.dump(object: appInfo)
print(yamlString)
} catch {
print("ข้อผิดพลาดในการซีเรียลไลซ์เป็น YAML: \(error)")
}
สิ่งนี้จะผลิตสตริงแบบ YAML:
environment: development
features:
- login
- notifications
name: MyApp
version: 1.0
ตัวอย่างเหล่านี้สาธิตการดำเนินการพื้นฐานสำหรับการทำงานกับ YAML ในแอปพลิเคชั่น Swift จำไว้ว่า ในขณะที่ YAML โดดเด่นในเรื่องความสามารถอ่านได้ง่ายและการใช้งานง่าย คุณควรพิจารณาระบุความต้องการเฉพาะของแอปพลิเคชันของคุณเสมอ โดยเฉพาะอย่างยิ่งในแง่ของประสิทธิภาพและความซับซ้อน เมื่อเลือกรูปแบบการซีเรียลไลซ์ข้อมูลของคุณ