Codable और JSON
Codable एक magic label है जो Swift को आपके custom types को JSON text में और वापस अपने आप translate करने देता है।
In this page:
Syntax
import Foundation
struct TypeName: Codable {
var property: Type
}
let data = try JSONEncoder().encode(instance)
let decoded = try JSONDecoder().decode(TypeName.self, from: data)
Encoding a Struct to JSON
Codable conform करने वाला एक struct JSONEncoder उपयोग करके JSON Data में बदला जा सकता है, जिसे फिर आमतौर पर एक printable String में convert किया जाता है।
उदाहरण: Encoding a Struct to JSON
// Import the `Foundation` module
import Foundation
// Define a struct `User`
struct User: Codable {
var name: String
var age: Int
}
// Declare a constant `user`, set to `User(name: "Nina", age: 29)`
let user = User(name: "Nina", age: 29)
// Declare a constant `data`, set to `try! JSONEncoder().encode(user)`
let data = try! JSONEncoder().encode(user)
// Print `String(data: data, encoding: .utf8)!` to the console
print(String(data: data, encoding: .utf8)!)
Login to try C/C++/Java/PHP code in the editor
Decoding JSON Back into a Struct
JSONDecoder JSON Data को वापस एक Codable type में parse करता है, original structured value reconstruct करते हुए।
उदाहरण: Decoding JSON Back into a Struct
// Import the `Foundation` module
import Foundation
// Define a struct `User`
struct User: Codable {
var name: String
var age: Int
}
// Declare a constant `json`, set to `"{\"name\":\"Leo\",\"age\":34}"`
let json = "{\"name\":\"Leo\",\"age\":34}"
// Declare a constant `data`, set to `json.data(using: .utf8)!`
let data = json.data(using: .utf8)!
// Declare a constant `decoded`, set to `try! JSONDecoder().decode(User.self, from: data)`
let decoded = try! JSONDecoder().decode(User.self, from: data)
// Print "\(decoded.name) is \(decoded.age)" to the console
print("\(decoded.name) is \(decoded.age)")
Login to try C/C++/Java/PHP code in the editor
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the
view already swaps in the hi_ translation fields (or blanks these
out if untranslated), so this renders correctly for both languages
without a lang_code check here. #}
आम गलतियां
- यह भूल जाना कि
JSONEncoder/JSONDecoderइसे process करने से पहले एक type कोCodable(याEncodable/Decodable) conform करना चाहिए। - यह मान लेना कि JSON में property names हमेशा Swift property names से बिल्कुल match करते हैं; mismatches के लिए एक custom
CodingKeysenum चाहिए। - यह भूल जाना कि
JSONEncoder().encode(_:)औरJSONDecoder().decode(_:from:)दोनों throwing functions हैं जिन्हेंtryचाहिए।
चैप्टर सारांश
Codable(दोनोंEncodableऔरDecodable) conform करने वाला एक type अपने आप JSON से/में convert हो सकता है।JSONEncoder().encode(_:)एकCodablevalue को JSON वालेDataमें बदलता है।JSONDecoder().decode(_:from:)Dataको वापस एक Swift type में parse करता है।CodingKeysआपको यह customize करने देता है कि property names JSON keys से कैसे map होते हैं।
🔒
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: