특정 JSON 응답을 얻고 싶습니다. 예를 들어, ID가 25와 26 인 배열에서 결과 (즉, 이름과 점수) 만 얻으면됩니다. WHERE
절이 신속하게 있습니까? 그게 도움이된다면 Alamofire와 SwiftyJSON을 사용하고 있습니다.JSON 응답의 특정 값을 식별하는 방법
지금 당장 제 코드는 모든 값을 가져 오지만 ID 25와 26의 결과 만 가져오고 싶습니다. 가능합니까?
내 코드 :
Alamofire.request(.GET, endPoint).validate()
.responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
for (_,subJson):(String, JSON) in json {
if let date = subJson["start_date"].string{
self.date = date
}
if let building = subJson["building_name"].string{
self.building = building
}
if let jobId = subJson["schedule_job_id"].int {
self.jobIdArray.append(jobId)
}
if let tasks = subJson["tasks"].array{
for building in tasks {
Tasks.sharedInstance.datas = tasks
if let ratings = building["safety_ratings"].array{
for submission in ratings {
if let score = submission["score"].string {
self.scoreArray.append(score)
}
if let ratingId = submission["safety_rating_id"].int {
self.ratingArray.append(ratingId)
}
if let submissionId = submission["submission_id"].int {
self.subIdArray.append(submissionId)
}
}
}
}
}
}
onCompletion()
}
case .Failure(let error):
print("Request failed with error: \(error)")
onError?(error)
}
}
UPDATE
func getTask(onCompletion:() ->(), onError: ((NSError) ->())? = nil) {
guard let endPoint = Data.sharedInstance.weeklyEndpoint else { print("Empty endpoint"); return }
Alamofire.request(.GET, endPoint, encoding: .JSON)
.validate()
.responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
for (_,subJson):(String, JSON) in json {
if let date = subJson["start_date"].string{
self.date = date
}
if let building = subJson["building_name"].string{
self.building = building
}
if let jobId = subJson["schedule_job_id"].int {
self.ratingArray.append(jobId)
}
let IDsYouWant: [Int] = [18, 27]
let tasksYouWant = subJson["tasks"].arrayValue.filter {IDsYouWant.contains($0["id"].intValue)}
for task in tasksYouWant {
if let ratings = task["safety_ratings"].array{
for submission in ratings {
if let score = submission["score"].string {
let scoreResult = Int(score)
self.ratingArray.append(scoreResult!)
}
if let ratingId = submission["safety_rating_id"].int {
self.ratingArray.append(ratingId)
}
if let submissionId = submission["submission_id"].int {
self.ratingArray.append(submissionId)
}
}
}
}
if let tasks = subJson["tasks"].array{
Tasks.sharedInstance.datas = tasks
}
}
print(self.ratingArray)
onCompletion()
}
case .Failure(let error):
print("Request failed with error: \(error)")
onError?(error)
}
}
}
내가 taskYouWant
를 인쇄 할 때 나는 하늘의 배열 ..
를 얻을이 내 GET에서 JSON 응답 https://codeshare.io/UqJMV
W 모자 내가 찾고있는 score
, safety_rating_id
내 submission_id
x 값입니다. submission_id
가 27
JSON에서는 아니지만 일단 Objective-C 컬렉션 클래스로 구문 분석하면 몇 가지 옵션이 있습니다. – trojanfoe
JSON의 실제 스 니펫을 포함시켜 주시겠습니까? 붙여 넣은 것은 유효하지 않습니다. 감사. – Moritz
안녕하세요 @EricD 내 게시물을 JSON 응답 – noobdev