



Instalasi • Penggunaan • Lisensi
Dynamicjson adalah parser JSON yang diketik secara dinamis yang dibangun di atas fitur @dynamicMemberLookup baru yang diperkenalkan oleh Chris Lattner di Swift 4.2. Hal ini memungkinkan kami untuk mengakses anggota objek sewenang -wenang yang diselesaikan saat runtime, memungkinkan Swift sefleksibel seperti javascript ketika datang ke JSON.
if let jsonObject = try ? JSONSerialization . jsonObject ( with : data , options : [ ] ) as? [ String : Any ] ,
let user = jsonObject [ " user " ] as? [ String : Any ] ,
let username = user [ " username " ] as? String {
// ...
} let username = JSON ( data ) . user . username . string pod 'DynamicJSON' , '~> 2.0.2' (Jika Anda mengalami masalah, pod repo update dan coba lagi)
github "saoudrizwan/DynamicJSON"DynamicJSON.swift ke proyek Anda. Dan import DynamicJSON dalam file yang ingin Anda gunakan.
Lemparkan Any ke objek JSON untuk memulai
let json = JSON ( Data ( ) )
JSON ( 123 )
JSON ( [ " key " : " value " ] )
JSON ( [ " element " , 1 ] )
JSON ( " Hello world " )
JSON ( false ) ... atau melemparkan literal sebagai JSON
let json = " Hello world " as JSON
123 as JSON
[ 1 , 2 , 3 ] as JSON
let user : JSON = [
" username " : " Saoud " ,
" age " : 21 ,
" address " : [
" zip " : " 12345 " ,
" city " : " San Diego "
]
] Perlakukan objek JSON seperti Anda berada di tanah JavaScript
let dictionary = json . dictionary
let array = json [ 0 ] . cars . array
let string = json . users [ 1 ] . username . string
let nsnumber = json . creditCard . pin . number
let double = json [ 3 ] [ 1 ] . height . double
let int = json [ 0 ] . age . int
let bool = json . biography . isHuman . bool Perhatikan bagaimana JSON tidak benar -benar memiliki properti seperti cars atau users , sebaliknya ia menggunakan pencarian anggota dinamis untuk melintasi data JSON yang terkait untuk menemukan objek yang Anda cari.
Jika Anda memiliki kunci yang merupakan properti aktual dari JSON , seperti number atau description misalnya, cukup gunakan string subscript Accessor So So:
let number = json . account . contact [ " number " ] . number
let description = json . user . biography [ " description " ] . string JSON sesuai dengan Comparable
let json1 = JSON ( jsonData1 )
let json2 = JSON ( jsonData2 )
// Equality applies to all types (Dictionary, Array, String, NSNumber, Bool, NSNull)
let isEqual = json1 == json2
// Less/greater than only applies to NSNumbers (Double, Int) and Strings
let isLessThan = json1 < json2
let isLessThanOrEqual = json1 <= json2
let isGreaterThan = json1 > json2
let isGreaterThanOrEqual = json1 >= json2Cetak cantik untuk tujuan debug
print ( json )Konversi ke objek mentah
let anyObject = json . object Konversi ke Data
let data = json . data ( ) // optionally specify options...Dynamicjson menggunakan lisensi MIT. Harap ajukan masalah jika Anda memiliki pertanyaan atau jika Anda ingin membagikan cara Anda menggunakan Dynamicjson.
Dynamicjson masih dalam masa pertumbuhan, tetapi menyediakan tulang bareb dari cara baru yang revolusioner untuk bekerja dengan JSON di Swift. Silakan mengirim permintaan tarik dari fitur apa pun yang menurut Anda akan ditambahkan ke Dynamicjson dan filosofinya.
Hubungi saya dengan email [email protected], atau melalui twitter @sdrzn. Harap buat masalah jika Anda menemukan bug atau ingin fitur ditambahkan.
@dynamicMemberLookup