I just want to parse only id
from this JSON response how can I do
{
message = "main_user";
result = ({
address = "";
"city_name" = "Dahaneh-ye Ghawri";
"country_name" = Afghanistan;
"created_at" = "2018-12-11 11:15:56";
"device_type" = 2;
"first_name" = reffed;
gender = 1;
id = 103;
"is_active" = 1;
"last_name" = "";
otp = 3470;
pincode = "";
"state_name" = Baglan;
"swith_add_without_hub" = 1;
"updated_at" = "2018-12-11 11:15:56";
"user_email" = "harinder@h.com";
"user_mobile" = 124312311;
"user_name" = harinder12;
"user_password" = d8578edf8458ce06fbc5bb76a58c5ca4;
verified = 1;
}
);
status = true;
}
I am using alamofire
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseJSON { response in
print(response) //to get status code
if let status = response.response?.statusCode {
switch(status){
case 201:
print("example success")
default:
print("error with response status: \(status)")
}
} //to get JSON return value
if let result = response.result.value {
let JSON = result as! NSDictionary
print(JSON)
}
}
You can use this JSON generator: Link
import Foundation
struct RootClass: Codable {
let message: String
let result: Result
let status: Bool
private enum CodingKeys: String, CodingKey {
case message = "message"
case result = "result"
case status = "status"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
message = try values.decode(String.self, forKey: .message)
result = try values.decode(Result.self, forKey: .result)
status = try values.decode(Bool.self, forKey: .status)
}
}
struct Result: Codable {
let address: String
let cityName: String
let countryName: String
let createdAt: String
let deviceType: Int
let firstName: String
let gender: Int
let id: Int
let isActive: Int
let lastName: String
let otp: Int
let pincode: String
let stateName: String
let swithAddWithoutHub: Int
let updatedAt: String
let userEmail: String
let userMobile: Int
let userName: String
let userPassword: String
let verified: Int
private enum CodingKeys: String, CodingKey {
case address = "address"
case cityName = "city_name"
case countryName = "country_name"
case createdAt = "created_at"
case deviceType = "device_type"
case firstName = "first_name"
case gender = "gender"
case id = "id"
case isActive = "is_active"
case lastName = "last_name"
case otp = "otp"
case pincode = "pincode"
case stateName = "state_name"
case swithAddWithoutHub = "swith_add_without_hub"
case updatedAt = "updated_at"
case userEmail = "user_email"
case userMobile = "user_mobile"
case userName = "user_name"
case userPassword = "user_password"
case verified = "verified"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
address = try values.decode(String.self, forKey: .address)
cityName = try values.decode(String.self, forKey: .cityName)
countryName = try values.decode(String.self, forKey: .countryName)
createdAt = try values.decode(String.self, forKey: .createdAt)
deviceType = try values.decode(Int.self, forKey: .deviceType)
firstName = try values.decode(String.self, forKey: .firstName)
gender = try values.decode(Int.self, forKey: .gender)
id = try values.decode(Int.self, forKey: .id)
isActive = try values.decode(Int.self, forKey: .isActive)
lastName = try values.decode(String.self, forKey: .lastName)
otp = try values.decode(Int.self, forKey: .otp)
pincode = try values.decode(String.self, forKey: .pincode)
stateName = try values.decode(String.self, forKey: .stateName)
swithAddWithoutHub = try values.decode(Int.self, forKey: .swithAddWithoutHub)
updatedAt = try values.decode(String.self, forKey: .updatedAt)
userEmail = try values.decode(String.self, forKey: .userEmail)
userMobile = try values.decode(Int.self, forKey: .userMobile)
userName = try values.decode(String.self, forKey: .userName)
userPassword = try values.decode(String.self, forKey: .userPassword)
verified = try values.decode(Int.self, forKey: .verified)
}
}
Then use alamofire to parse
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseJSON { response in
print(response) //to get status code
if let status = response.response?.statusCode {
switch(status){
case 201:
print("example success")
default:
print("error with response status: \(status)")
}
} //to get JSON return value
if let result = response.result.value {
let JSON = result as! RootClass
print(JSON)
}
}
my suggestion is to use SwiftyJSON: SwiftyJSON
look at this example:
Alamofire.request(url, method: .get).validate().responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
print("JSON: \(json)")
case .failure(let error):
print(error)
}
}
after that you can say something like:
json["id"]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.