私のアプリはSwift 3.1で書きます。そして、サーバーからjsonを取得して解析した後String
、奇妙な追加文字を取得しました。サーバーからの文字列応答は: です"name" : "nhatlee's store"
が、Json をコードで解析した後name = dict["name"] as? String
、結果はname = Lee Tester\'s Store
. このケースでjsonを解析する方法を修正するのを手伝ってください。サーバーからデータを取得するコードは次のとおりです。
self.requestWith(.post, url: url, parameters: params) { (data, error) in
if let data = data?["mentions"] as? Array<AnyObject>{
var mentionObjs = [MentionModel]()
for obj in data{
print(obj)
let mention = MentionModel(from: obj as! [String : AnyObject])
mentionObjs.append(mention)
}
Completion(Result.Success(mentionObjs))
} else {
Completion(Result.Failure(error))
}
}
そしてjson応答は次のとおりです。
{
email = "nhatlee3@gmail.com";
id = 516;
image = "<null>";
name = nhatlee3;
"object_class" = User;
}
{
id = 106;
image = "<null>";
name = "Lee Tester's Store";
"object_class" = Store;
"user_id" = 352;
}
そして、ここに私のモデルオブジェクトがあります(私はjsonをモデルに解析します->コード構造の良い方法がわからないので、より良い方法があればアドバイスをください):
struct MentionModel {
var id: Int?
var name: String?
var imageUrl: String?
var objectClass: String?
init(from dict: [String: AnyObject]) {
id = dict["id"] as? Int
name = dict["name"] as? String
imageUrl = dict["image"] as? String
objectClass = dict["object_class"] as? String
}
}