Video: Developer Keynote: Get to the Fun Part (Cloud Next '19) 2024
Bagian dari iOS Cloud Development For Dummies Cheat Sheet
Bila Anda menggunakan layanan web yang berbasis di awan, tanggapan Anda mungkin ada di JSON. Jika, saat bekerja dengan layanan web berbasis awan Anda, Anda harus memasukkan yang berikut di browser web Anda
// maps. googleapis com / maps / api / geocode / json? sensor = true & address = EmpireState Building &
Anda akan mendapatkan kembali beberapa JSON - berikut ini, misalnya
hasil {hasil: [{… geometri {{ batas: { timur laut: { lat: 40. 7489545, lng: -73. 98483449999999}, barat daya: { lat: 40. 7479245, lng: -73. 9865073}}, lokasi: { lat: 40. 7484395, lng: -73. 9856709}, …}
Karena JSON sama signya dengan XML, Anda kemudian harus mengurai apapun yang diberikan JSON kepada Anda.
Parsing JSON, bagaimanapun, sangat berbeda dengan parsing XML. JSON dibangun di atas dua struktur yang tidak biasa Anda kenal - array dan kamus. Contoh JSON berikut menggunakan keduanya:
NSError * error = nil; NSDictionary * responseDict = [NSJSONSerialization JSONObjectWithData: datapilihan: NSJSONReadingMutableContainers error: & error];
Bila Anda melakukan parsing JSON, Anda memiliki beberapa pilihan yang dapat Anda atur juga:
-
NSJSONReadingMutableContainers: Array dan kamus yang Anda dapatkan dapat diubah sehingga Anda dapat memodifikasinya. Defaultnya tidak berubah.
-
NSJSONReadingMutableLeaves: String yang Anda dapatkan bisa diubah sehingga Anda dapat memodifikasinya. Defaultnya tidak berubah.
-
NSJSONReadingAllowFragments: Menentukan bahwa parser harus memungkinkan objek tingkat atas yang bukan array atau kamus. Defaultnya memerlukan objek top-level JSON untuk dijadikan array atau kamus.
Bila Anda menggunakan kelas NSJSONSerialization, Anda (biasanya tapi tidak harus) mengembalikan array atau kamus yang bisa menyertakan string dan angka dan bahkan array dan kamus lainnya (pikirkan daftar properti di sini).
Dalam hal ini, Anda bisa mendapatkan di lokasi lat dan lng dengan melakukan
NSDictionary * result = [results objectAtIndex: 0]; NSDictionary * geometri = [result objectForKey: @ "geometri"]; NSDictionary * location = [objek geometriForKey: @ "location"]; lintang = [nilai lokasiForKey: @ "lat"]; bujur = [nilai lokasiForKey: @ "lng"];