gpt4 book ai didi

ios - 如何在快速发送到 json 解析器之前删除 xml 标签

转载 作者:行者123 更新时间:2023-11-28 06:36:02 25 4
gpt4 key购买 nike

我想在我的应用中使用 JSON 数据。所以我正在使用这个 webservice 调用方法将我的 json 数据转换为数组。

func getData(path: String, completion: (dataArray: NSArray)->()) {
let semaphore = dispatch_semaphore_create(0)
// var datalistArray = NSArray()
let baseUrl = NSBundle.mainBundle().infoDictionary!["BaseURL"] as! String
let fullUrl = "\(baseUrl)\(path)"

print("FULL URL-----HTTPClient \(fullUrl)")
guard let endpoint = NSURL(string:fullUrl) else {
print("Error creating endpoint")
return
}
let request = NSMutableURLRequest(URL: endpoint)
NSURLSession.sharedSession().dataTaskWithRequest(request,completionHandler: {(data,response,error) in
do {
guard let data = data else {
throw JSONError.NoData
}
guard let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSArray else {//NSJSONReadingOptions.AllowFragments
throw JSONError.ConversionFailed
}
print(json)
if let data_list:NSArray = json {

completion(dataArray: data_list)
dispatch_semaphore_signal(semaphore);


}

}catch let error as JSONError {
print(error.rawValue)
} catch let error as NSError {
print(error.debugDescription)
}





}) .resume()

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);


}

但现在我的服务在 xml 标签内发送 json 数据,如 <string xmlns="http://tempuri.org/">json data</string所以当我尝试转换我的 json 数据时出现异常。这个异常(exception)。

Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}

在发送到 json 解析器之前,我应该在我的代码中更改什么以删除这些标签?请帮我。谢谢

最佳答案

我认为您从服务器获得的响应是​​ xml 格式,而不是 json。如果是xml格式那么你必须做xml解析而不是json解析。

NSJSONSerialization.JSONObjectWithData是从数据(json格式的数据)中得到json对象的json解析。

但是如果你从服务器得到 xml 格式的响应,那么你应该使用 NSXMLParser解析数据。

如果你对此不太了解,那么你可以引用像XML Parsing using NSXMLParse in Swift by The appguruz这样的教程。或者可以使用第三方库。

关于ios - 如何在快速发送到 json 解析器之前删除 xml 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080190/

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