struct Sentence {
var sentence = ""
var lang = ""
static func jsonArray(array : [Sentence]) -> String
{
return "[" + array.map {$0.jsonRepresentation}.joinWithSeparator(",") + "]"
}
var jsonRepresentation : String {
return "{\"sentence\":\"\(sentence)\",\"lang\":\"\(lang)\"}"
}
}
let sentences = [Sentence(sentence: "Hello world", lang: "en"), Sentence(sentence: "Hallo Welt", lang: "de")]
let jsonArray = Sentence.jsonArray(sentences)
print(jsonArray) // [{"sentence":"Hello world","lang":"en"},{"sentence":"Hallo Welt","lang":"de"}]
スイフト4は、例えば、エンコード可能なプロトコルをサポート
struct Sentence: Encodable {
var sentence: String?
var lang: String?
}
let sentence = Sentence(sentence: "Hello world", lang: "en")
今、あなたは自動的にあなたの構造体がJSONEncoderを使用してJSONに変換することができます
let jsonEncoder = JSONEncoder()
let jsonData = try jsonEncoder.encode(sentence)
はそれをプリントアウト:[JSONに辞書を変換するの
let jsonString = String(data: jsonData, encoding: .utf8)
print(jsonString)
{
"sentence": "Hello world",
"lang": "en"
}
https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types
を可能な重複Swift](http://stackoverflow.com/questions/29625133/convert-dictionary-to-json-in-s) wift)(ヒントとして、配列や辞書をJSONに変換することしかできないので、基本的にJSON形式で入れたい値の辞書表現が必要です)。 – nhgrif
本質的には、構造体をjsonのようなStringに変換できれば大丈夫です。配列と辞書だけがJSONに変換可能な場合、私の質問は:構造体を辞書に変換する方法ですか? – ixany
https://github.com/Hearst-DD/ObjectMapperなどのサードパーティのライブラリがあります。しかし、私はそれについての経験はありません。 –