gpt4 book ai didi

ios - Alamofire参数json格式bug

转载 作者:行者123 更新时间:2023-11-28 08:48:09 25 4
gpt4 key购买 nike

我有这个辅助函数来创建 json 以作为参数与我的 PUT 请求一起传递。

static func helperProfileParametersWith(user: User?, username: String?, email: String?, meta_motto: String?, meta_status: String?) -> [String: AnyObject] {
if let user = user {
return ["username": username ?? "", "email": email ?? "", "status": user.status ?? "", "meta": ["status": meta_status ?? "", "motto": meta_motto ?? ""], "type":user.type ?? ""]
}
return [String:AnyObject]()
}

输出会像

{
username: "admin",
email: "xx@xx.xx",
status: "banned",
meta: {
status: "I am happy today",
motto: "i love coding"
}
}

然后我将参数传递给函数

static func updateUserProfile(userId: String, parameters: [String: AnyObject], failure: ((NSError)->Void)?, success: ([String: AnyObject], Set<String>)->Void) {

Alamofire.request(.PUT, API.baseUrl + API.user.fetchUpdateProfile + "/" + userId, parameters: parameters).responseJSON {
response in
}
}

但是从我的 NodeJS 服务器,我得到的是

{
username: "admin",
email: "xx@xx.xx",
status: "banned",
meta["status"]: "I am happy today",
meta["motto"]: "i love coding"
}

可以看到子字典被“扁平化”了,key变成了meta["motto"]字符串,而不是meta,然后是motto

我很确定这不是我的服务器的问题,因为我的 Angular 客户端工作正常。

注意:如果你好奇的话。我使用 ng-resource 以正确的格式发送 JSON。

app.factory('Profile', ['$resource', function($resource) {
return $resource(constant.webapi.user.fetchUpdateProfile, {profileId: '@_id'}, {
update: {method: 'PUT'}
})
}])



$scope.updateProfile = function() {
$scope.profile.$update(function(data) {
data = helper.dataAppendedWithMessage(data, 'success', 'success update profile')
$scope.profile = data
helper.showMessage($scope, data, false)
},
//helper.callbackToShowMessage($scope, false)
function(err) {
//Note: if fail to update, reload the page.
//Otherwise we have to revert back to original, which is tedious to do
helper.showMessage($scope, err.data, true) //since we reload the page, store message in $cookies
$window.location.reload(true)
})
}

最佳答案

确保您发送的内容类型为“application/json”以及您的 Alamofire 请求。

关于ios - Alamofire参数json格式bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com