Handling JSON with Alamofire & SwiftyJSON and Adding to UITableView in Swift
I want to use Alamofire and SwiftyJSON for my REST API. I have accessed the root JSON but I can't access the objects of JSON.
This my json result:
[
"ID": 1,
"name": "JABODETABEK",
"cabang": [
"ID": 1,
"wilayah_id": 1,
"name": "Jembatan Lima"
,
"ID": 2,
"wilayah_id": 1,
"name": "Kebon Jeruk"
]
,
"ID": 2,
"name": "Sumatra Selatan dan Bangka Belitung",
"cabang": [
"ID": 6,
"wilayah_id": 2,
"name": "A. Yani - Palembang"
,
"ID": 7,
"wilayah_id": 2,
"name": "Veteran - Palembang"
]
}
With this code:
Alamofire.request(url).responseJSON (responseData) -> Void in
if((responseData.result.value) != nil)
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar.arrayObject
self.productArray = resData as! [[String:AnyObject]]
print("MyArray: (self.productArray)")
My tableview:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"] as? String
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return (((?)))
Please help me in viewing the datas in my tableView cells using Alamofire and SwiftyJSON. How can I access that data? I mean how can I get numberOfRowsInSection
?
ios json swift uitableview swifty-json
add a comment |
I want to use Alamofire and SwiftyJSON for my REST API. I have accessed the root JSON but I can't access the objects of JSON.
This my json result:
[
"ID": 1,
"name": "JABODETABEK",
"cabang": [
"ID": 1,
"wilayah_id": 1,
"name": "Jembatan Lima"
,
"ID": 2,
"wilayah_id": 1,
"name": "Kebon Jeruk"
]
,
"ID": 2,
"name": "Sumatra Selatan dan Bangka Belitung",
"cabang": [
"ID": 6,
"wilayah_id": 2,
"name": "A. Yani - Palembang"
,
"ID": 7,
"wilayah_id": 2,
"name": "Veteran - Palembang"
]
}
With this code:
Alamofire.request(url).responseJSON (responseData) -> Void in
if((responseData.result.value) != nil)
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar.arrayObject
self.productArray = resData as! [[String:AnyObject]]
print("MyArray: (self.productArray)")
My tableview:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"] as? String
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return (((?)))
Please help me in viewing the datas in my tableView cells using Alamofire and SwiftyJSON. How can I access that data? I mean how can I get numberOfRowsInSection
?
ios json swift uitableview swifty-json
productArray[section]["cabang"].count
– Himanshu Moradiya
Nov 12 '18 at 4:54
Where do you reload your table view? Is reload called in main thread?
– Timur Bernikowich
Dec 18 '18 at 10:29
add a comment |
I want to use Alamofire and SwiftyJSON for my REST API. I have accessed the root JSON but I can't access the objects of JSON.
This my json result:
[
"ID": 1,
"name": "JABODETABEK",
"cabang": [
"ID": 1,
"wilayah_id": 1,
"name": "Jembatan Lima"
,
"ID": 2,
"wilayah_id": 1,
"name": "Kebon Jeruk"
]
,
"ID": 2,
"name": "Sumatra Selatan dan Bangka Belitung",
"cabang": [
"ID": 6,
"wilayah_id": 2,
"name": "A. Yani - Palembang"
,
"ID": 7,
"wilayah_id": 2,
"name": "Veteran - Palembang"
]
}
With this code:
Alamofire.request(url).responseJSON (responseData) -> Void in
if((responseData.result.value) != nil)
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar.arrayObject
self.productArray = resData as! [[String:AnyObject]]
print("MyArray: (self.productArray)")
My tableview:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"] as? String
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return (((?)))
Please help me in viewing the datas in my tableView cells using Alamofire and SwiftyJSON. How can I access that data? I mean how can I get numberOfRowsInSection
?
ios json swift uitableview swifty-json
I want to use Alamofire and SwiftyJSON for my REST API. I have accessed the root JSON but I can't access the objects of JSON.
This my json result:
[
"ID": 1,
"name": "JABODETABEK",
"cabang": [
"ID": 1,
"wilayah_id": 1,
"name": "Jembatan Lima"
,
"ID": 2,
"wilayah_id": 1,
"name": "Kebon Jeruk"
]
,
"ID": 2,
"name": "Sumatra Selatan dan Bangka Belitung",
"cabang": [
"ID": 6,
"wilayah_id": 2,
"name": "A. Yani - Palembang"
,
"ID": 7,
"wilayah_id": 2,
"name": "Veteran - Palembang"
]
}
With this code:
Alamofire.request(url).responseJSON (responseData) -> Void in
if((responseData.result.value) != nil)
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar.arrayObject
self.productArray = resData as! [[String:AnyObject]]
print("MyArray: (self.productArray)")
My tableview:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"] as? String
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return (((?)))
Please help me in viewing the datas in my tableView cells using Alamofire and SwiftyJSON. How can I access that data? I mean how can I get numberOfRowsInSection
?
ios json swift uitableview swifty-json
ios json swift uitableview swifty-json
edited Nov 12 '18 at 5:11
rmaddy
239k27311376
239k27311376
asked Nov 12 '18 at 4:45
Irwan MadnessIrwan Madness
180210
180210
productArray[section]["cabang"].count
– Himanshu Moradiya
Nov 12 '18 at 4:54
Where do you reload your table view? Is reload called in main thread?
– Timur Bernikowich
Dec 18 '18 at 10:29
add a comment |
productArray[section]["cabang"].count
– Himanshu Moradiya
Nov 12 '18 at 4:54
Where do you reload your table view? Is reload called in main thread?
– Timur Bernikowich
Dec 18 '18 at 10:29
productArray[section]["cabang"].count
– Himanshu Moradiya
Nov 12 '18 at 4:54
productArray[section]["cabang"].count
– Himanshu Moradiya
Nov 12 '18 at 4:54
Where do you reload your table view? Is reload called in main thread?
– Timur Bernikowich
Dec 18 '18 at 10:29
Where do you reload your table view? Is reload called in main thread?
– Timur Bernikowich
Dec 18 '18 at 10:29
add a comment |
3 Answers
3
active
oldest
votes
Try this:
Alamofire.request("url").responseJSON { (responseData) -> Void in
if let data = response.data
guard let json = try? JSON(data: data) else return
self.productArray = json.arrayValue //productArray type must be [[String:AnyObject]]
after that update tableView delegate functions:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"].string
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return productArray[sectionInd]["cabang"].arrayValue.count
add a comment |
First thing is don't use Dictionary or array of Dictionary now. You can use Codable instead https://medium.com/@multidots/essentials-of-codable-protocol-in-swift-4-c795a645c3e1,
if you are using dictionary then use Any instead of AnyObject.
Your answer is (self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return ((self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
add a comment |
//MARK:- UITableView Delegate & DataSource
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let dictionaryProduct = self.productArray.object(at: section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
return arrayCabang.count
else
return 0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let dictionaryProduct = self.productArray.object(at: indexPath.section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
let dictionaryCurrentCabang = arrayCabang.object(at: indexPath.row) as! NSDictionary
//Here you get data of cabangs at the particular index
return cell!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53256086%2fhandling-json-with-alamofire-swiftyjson-and-adding-to-uitableview-in-swift%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try this:
Alamofire.request("url").responseJSON { (responseData) -> Void in
if let data = response.data
guard let json = try? JSON(data: data) else return
self.productArray = json.arrayValue //productArray type must be [[String:AnyObject]]
after that update tableView delegate functions:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"].string
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return productArray[sectionInd]["cabang"].arrayValue.count
add a comment |
Try this:
Alamofire.request("url").responseJSON { (responseData) -> Void in
if let data = response.data
guard let json = try? JSON(data: data) else return
self.productArray = json.arrayValue //productArray type must be [[String:AnyObject]]
after that update tableView delegate functions:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"].string
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return productArray[sectionInd]["cabang"].arrayValue.count
add a comment |
Try this:
Alamofire.request("url").responseJSON { (responseData) -> Void in
if let data = response.data
guard let json = try? JSON(data: data) else return
self.productArray = json.arrayValue //productArray type must be [[String:AnyObject]]
after that update tableView delegate functions:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"].string
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return productArray[sectionInd]["cabang"].arrayValue.count
Try this:
Alamofire.request("url").responseJSON { (responseData) -> Void in
if let data = response.data
guard let json = try? JSON(data: data) else return
self.productArray = json.arrayValue //productArray type must be [[String:AnyObject]]
after that update tableView delegate functions:
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
let dic = productArray[section]
return dic["name"].string
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return productArray[sectionInd]["cabang"].arrayValue.count
edited Nov 12 '18 at 5:16
Kuldeep
2,47441534
2,47441534
answered Nov 12 '18 at 5:12
andesta.erfanandesta.erfan
495121
495121
add a comment |
add a comment |
First thing is don't use Dictionary or array of Dictionary now. You can use Codable instead https://medium.com/@multidots/essentials-of-codable-protocol-in-swift-4-c795a645c3e1,
if you are using dictionary then use Any instead of AnyObject.
Your answer is (self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return ((self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
add a comment |
First thing is don't use Dictionary or array of Dictionary now. You can use Codable instead https://medium.com/@multidots/essentials-of-codable-protocol-in-swift-4-c795a645c3e1,
if you are using dictionary then use Any instead of AnyObject.
Your answer is (self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return ((self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
add a comment |
First thing is don't use Dictionary or array of Dictionary now. You can use Codable instead https://medium.com/@multidots/essentials-of-codable-protocol-in-swift-4-c795a645c3e1,
if you are using dictionary then use Any instead of AnyObject.
Your answer is (self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return ((self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
First thing is don't use Dictionary or array of Dictionary now. You can use Codable instead https://medium.com/@multidots/essentials-of-codable-protocol-in-swift-4-c795a645c3e1,
if you are using dictionary then use Any instead of AnyObject.
Your answer is (self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
func tableView(_ tableView: UITableView, numberOfRowsInSection sectionInd: Int) -> Int
return ((self.productArray[sectionInd]["cabang"] as! [[String:Any]]).count
answered Nov 12 '18 at 4:53
Prashant TukadiyaPrashant Tukadiya
7,15121846
7,15121846
add a comment |
add a comment |
//MARK:- UITableView Delegate & DataSource
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let dictionaryProduct = self.productArray.object(at: section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
return arrayCabang.count
else
return 0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let dictionaryProduct = self.productArray.object(at: indexPath.section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
let dictionaryCurrentCabang = arrayCabang.object(at: indexPath.row) as! NSDictionary
//Here you get data of cabangs at the particular index
return cell!
add a comment |
//MARK:- UITableView Delegate & DataSource
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let dictionaryProduct = self.productArray.object(at: section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
return arrayCabang.count
else
return 0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let dictionaryProduct = self.productArray.object(at: indexPath.section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
let dictionaryCurrentCabang = arrayCabang.object(at: indexPath.row) as! NSDictionary
//Here you get data of cabangs at the particular index
return cell!
add a comment |
//MARK:- UITableView Delegate & DataSource
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let dictionaryProduct = self.productArray.object(at: section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
return arrayCabang.count
else
return 0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let dictionaryProduct = self.productArray.object(at: indexPath.section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
let dictionaryCurrentCabang = arrayCabang.object(at: indexPath.row) as! NSDictionary
//Here you get data of cabangs at the particular index
return cell!
//MARK:- UITableView Delegate & DataSource
func numberOfSections(in tableView: UITableView) -> Int
return self.productArray.count
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let dictionaryProduct = self.productArray.object(at: section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
return arrayCabang.count
else
return 0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let dictionaryProduct = self.productArray.object(at: indexPath.section) as! NSDictionary
let arrayCabang = dictionaryProduct.object(forKey: "cabang") as! NSArray
if arrayCabang.count > 0
let dictionaryCurrentCabang = arrayCabang.object(at: indexPath.row) as! NSDictionary
//Here you get data of cabangs at the particular index
return cell!
edited Nov 12 '18 at 6:19
answered Nov 12 '18 at 5:25
Rohit PariharRohit Parihar
4617
4617
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53256086%2fhandling-json-with-alamofire-swiftyjson-and-adding-to-uitableview-in-swift%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
productArray[section]["cabang"].count
– Himanshu Moradiya
Nov 12 '18 at 4:54
Where do you reload your table view? Is reload called in main thread?
– Timur Bernikowich
Dec 18 '18 at 10:29