我基于所述submission_id
试图从一个阵列(称为array
)拉出变量(safety_rating_id
,score
等)使用迅速库Dollar
(https://github.com/ankurp/Dollar)的find
方法这样我以后可以做一个POST请求(最后,我希望能够代替我与拉数组变量参数的硬编码值),与他们但从find
所有返回零我的结果。如何从多维数组过滤器内侧阵列
这些都是内阵列我想其中submission_id
是27
从这个数组https://codeshare.io/zr1pw(行22- 36):
{
"submission_id" : "27",
"name" : "Equipment",
"task_id" : "37",
"points" : "10",
"safety_rating_id" : 105,
"score" : "9"
}, {
"submission_id" : "27",
"name" : "Emergency Equipment",
"task_id" : "37",
"points" : "10",
"safety_rating_id" : 106,
"score" : "9"
}
代码:
var array: [JSON] = []
func submitScore(onCompletion:() ->(), onError: ((NSError) ->())? = nil) {
guard let endPoint = Data.sharedInstance.submitScoreEndpoint
else { print("Empty endpoint"); return }
let user = Users()
let test = $.find(self.array, callback: { $0 == 27 })
print(test)
let Auth_header = [
"Authorization" : user.token,
]
let parameters: [String:Array<[String:Int]>] = [
"ratings" : [
[
"safety_rating_id" : 105,
"schedule_job_id" : 18,
"score" : 9,
"submission_id" : 27
],
[
"safety_rating_id" : 106,
"schedule_job_id" : 18,
"score" : 10,
"submission_id" : 27
]
]
]
Alamofire.request(.POST, endPoint, headers: Auth_header, parameters: parameters, encoding: .JSON)
.validate()
.responseJSON {
response in
switch response.result {
case .Success(let data):
let json = JSON(data)
print(json)
onCompletion()
case .Failure(let error):
print("Request failed with error: \(error)")
onError?(error)
}
}
}
UPDATE
我可以用submission_id
27获得数组,但我想删除name
和task_id
从两个submission_id : 27
阵列和添加schedule_job_id
,我从别处得到的。
我试过用for in
循环来创建我自己想要的变量的数组,但我不断收到nil
崩溃。这是新的数组的样子https://codeshare.io/3VJSo
最后,我希望做一个"ratings" : [chosenArray]
你为什么要调用'.validate()'两次? – NRitH
哦,我没有注意到,谢谢你指出 – noobdev
你有另一个类似的问题,我已经回答了:http://stackoverflow.com/questions/37540689/how-to-identify-specific-values-in-json-response – 66o