gpt4 book ai didi

ios - 如何快速删除 json 字符串中的额外 { 大括号

转载 作者:行者123 更新时间:2023-11-30 13:37:35 25 4
gpt4 key购买 nike

任何人都可以建议我如何在发送请求之前删除“{'{\n”。我的 api 不接受我的参数,值的编码是像 {'{\n key:values}:""}

这是我的示例代码:

    let configuration = NSURLSessionConfiguration .defaultSessionConfiguration()
let session = NSURLSession(configuration: configuration)

self.profieImage = UIImage(named: "calendar.png")

let imageData = UIImageJPEGRepresentation(self.profieImage, 1)

let params = ["fname":"Martin","lname":"Raj","gender":"Male","dob":"1997-9-14","email":"xx@gmail.com","mobileNumber":"00000","pancard":"vvvv","profileImg":imageData!] as Dictionary!

let jsonData = try! NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.PrettyPrinted)

let theJSONText = NSString(data: jsonData,encoding: NSASCIIStringEncoding)
print("JSON string = \(theJSONText!)")


let urlString = NSString(format:"http://my.api.call");
print("url string is \(urlString)")
let request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: NSString(format: "%@", urlString)as String)
request.HTTPMethod = "POST"
request.timeoutInterval = 30
request.addValue("mobile", forHTTPHeaderField: "true")
request.addValue("token", forHTTPHeaderField: "")
request.HTTPBody = theJSONText!.dataUsingEncoding(NSUTF8StringEncoding)



let dataTask = session.dataTaskWithRequest(request)
{
(let data: NSData?, let response: NSURLResponse?, let error: NSError?) -> Void in
// 1: Check HTTP Response for successful GET request
guard let httpResponse = response as? NSHTTPURLResponse, receivedData = data
else {
print("error: not a valid http response")
return
}

switch (httpResponse.statusCode){
case 200:
let response = NSString (data: receivedData, encoding: NSUTF8StringEncoding)

print("response==\(response)")

default:
break
}
}

我的后端日志打印此语句:

 { '{\n  "dob" : "1997",\n  "validatedId" : "sdfdfdf",\n  "pancard" : "rrrrr",\n  "email" : "xx@gmail.com",\n  "sameGender" : "1",\n  "profileImg" : "mobileNumber" : "1230123012",\n  "fname" : "Martin"\n}': '' }

但我必须发送这样的值

{
"dob" : "1997",
"validatedId" : "dfdsfdsf",
"pancard" : "vvvvv",
"email" : "xx@gmail.com",
"sameGender" : "1"
}

最佳答案

在这个地方

 let params = ["fname":"Martin","lname":"Raj","gender":"Male","dob":"1997-9-14","email":"xx@gmail.com","mobileNumber":"00000","pancard":"vvvv","profileImg":imageData!] as Dictionary!

不需要这个

 let jsonData = try! NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.PrettyPrinted)

let theJSONText = NSString(data: jsonData,encoding: NSASCIIStringEncoding)
print("JSON string = \(theJSONText!)")

reason already you creted the dictioanry and again you convert to new JSOn string so that the reason you get combined dictionary, use either single dictionary is enough or use String and convert your string to JSon string

直接使用

 let params = ["fname":"Martin","lname":"Raj","gender":"Male","dob":"1997-9-14","email":"xx@gmail.com","mobileNumber":"00000","pancard":"vvvv","profileImg":imageData!] as Dictionary!
request.HTTPMethod = "POST"
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.allZeros, error: &err)

关于ios - 如何快速删除 json 字符串中的额外 { 大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912679/

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