以下のような文字列があります。
{
"hoge" : "xxxx",
"huga" : "yyyy",
"ppiyo" : "zzzz"
}
以上のような既にディクショナリ型のようになっているものを
swift
1var data: [String: String] = [:]
に実際のディクショナリとして入れる方法はありますか?
まず考えたのは 文字列を:などでスプリットする方法ですが、すると","が入ってしまったり、””の中に:が入っているとそこでも分かれてしまったりしてかなり面倒なことになります。何か良い方法はないでしょうか?
以下因みにですが、、、、、、、、、、、、、、
何故このようなことをしているかというと以下のようなCodableな配列がありそれを、
Swift
1 2struct Log:Codable { 3 4 var hoge:String 5 var huga:String 6 var piyo:Data 7 8}
以下のようにエンコードして、さらにそれを文字列にした形が以上のようなディクショナリー型なのでそれを本当のディクショナリ型にしたいという状況です。
Swift
1var jsonstr:String! 2let encoder = JSONEncoder() 3 do { 4 encoder.outputFormatting = .prettyPrinted 5 if let encoded = try? encoder.encode(log) { 6 jsonstr = String(data: encoded, encoding: .utf8)! 7 print(jsonstr!) 8 } 9 }
ですので以上の構造体のインスタンスを直接[String: String]のディクショナリ型にできればそれでもいいのですが。。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/01 01:29