swift 服务端要求json对象怎么办?(二)
发布时间:2020-12-14 02:10:56 所属栏目:百科 来源:网络整理
导读:还记得上次post请求的参数格式吗? “{‘name’:dog','password':'123'}” 为什么要这么写呢? 一:网络编程,你需要一个利器抓包工具,Fiddler 这个就不错,我发现抓到的http contentType = "application/x-www-form-urlencoded" 额,好吧,我想要的是 cont
还记得上次post请求的参数格式吗? “{‘name’:dog','password':'123'}” 为什么要这么写呢? 一:网络编程,你需要一个利器抓包工具,Fiddler 这个就不错,我发现抓到的httpcontentType = "application/x-www-form-urlencoded" 额,好吧,我想要的是contentType=“application/json”,到YYHRequest中看看那里设置,
func serializeRequestParameters() { contentType = "application/x-www-form-urlencoded" if (method == "GET") { if let queryURL = queryParametersURL() { url = queryURL } } else { body = serializedRequestBody() } }啊,是这里,立马改成 contentType=“application/json”,好吧,跑起来看看,还是没什么卵用 二:那还是沿着原来的路线来吧 写个方法吧,干脆
func ConvertType(parameters:Dictionary<String,String>)->String{ var para:Dictionary<String,String> = parameters var paraStr:String="{" for (key,value) in para{ paraStr = paraStr + "'" + key + "'" + ":" + "'" + value + "'" + "," } let rangeOfPara = Range(start: paraStr.startIndex,end: advance(paraStr.endIndex,-1)) let finalStr = paraStr.substringWithRange(rangeOfPara) var parametersStr:String = finalStr + "}" return parametersStr }
如果有多个,多层,那你就需要不断的循环添加了
var strTest:[String]=[] var n:Int=5 for i in 0…n{ let parameter1:Dictionary<String,String> = [“a”:”1” ] let parameter2:Dictionary<String,String> = [“a”:”1” ] strTest.insert("{“+self.ConvertType(parameter1)+ self.ConvertType (parameter2)+"}",atIndex: strTest.endIndex) } println(strTest ) 这样最后就生产出来服务器需要的格式了大致如下 "[{'a':{'aa':'1'},'b':[{'a':'1'},{}]},{},{}]" 三:总结: 其实主要的思路就是:先看你要什么格式,比如我要的就是“{‘name’:dog','password':'123'}”这种类型,然后再利用for key value 的方法来变量字典中的值,给他拼接成你想要的最后格式 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |