Saya telah membuat Kamus berikutnya:
var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
dan saya mendapatkan:
[2: B, 1: A, 3: C]
Jadi, bagaimana saya bisa mengubahnya menjadi JSON?
json
swift
serialization
Orkhan Alizade
sumber
sumber
NSJSONSerialization
Jawaban:
Swift 3.0
Dengan Swift 3, nama
NSJSONSerialization
dan metodenya telah berubah, sesuai dengan Pedoman Desain API Swift .Swift 2.x
Cepat 1
sumber
[2: A, 1: A, 3: A]
. Tapi bagaimana dengan kurung keriting?{"result":[{"body":"Question 3"}] }
dataWithJSONObject
akan menghasilkan "kurung keriting" (yaitu kurung kurawal) sebagai bagian dariNSData
objek yang dihasilkan .Anda membuat asumsi yang salah. Hanya karena debugger / Playground menunjukkan kamus Anda dalam tanda kurung siku (yang merupakan cara Cocoa menampilkan kamus) itu tidak berarti itu adalah cara output JSON diformat.
Berikut adalah contoh kode yang akan mengonversi kamus string ke JSON:
Versi Swift 3:
Untuk menampilkan di atas dalam format "cukup dicetak" Anda akan mengubah baris opsi ke:
Atau dalam sintaks Swift 2:
Output dari itu adalah
Atau dalam format cantik:
Kamus terlampir dalam kurung kurawal di output JSON, seperti yang Anda harapkan.
EDIT:
Dalam sintaks Swift 3/4, kode di atas terlihat seperti ini:
sumber
Swift 5:
Perhatikan bahwa kunci dan nilai harus diimplementasikan
Codable
. String, Ints, dan Doubles (dan banyak lagi) sudahCodable
. Lihat Encoding dan Decoding Jenis Kustom .sumber
Jawaban saya untuk pertanyaan Anda ada di bawah ini
Jawabannya adalah
sumber
Dictionary
Perpanjangan cepat 4 .sumber
encoding: .ascii
dalam ekstensi publik..utf8
akan jauh lebih aman!Terkadang perlu untuk mencetak respons server untuk tujuan debugging. Inilah fungsi yang saya gunakan:
Contoh penggunaan:
sumber
Swift 3 :
sumber
Jawaban untuk pertanyaan Anda adalah di bawah ini:
Cepat 2.1
sumber
Berikut ini adalah ekstensi mudah untuk melakukan ini:
https://gist.github.com/stevenojo/0cb8afcba721838b8dcb115b846727c3
sumber
sumber