gpt4 book ai didi

json - SWIFT 3 如何从本地主机 Web 服务连接 Json

转载 作者:行者123 更新时间:2023-11-30 12:56:24 25 4
gpt4 key购买 nike

我想从本地主机连接数据,但有错误“json 错误:无法读取数据,因为格式不正确。”

here is code.

 let session = URLSession.shared
var dataTask:URLSessionDataTask!
var webDomain = "http://192.xxx.xx.xx:80xx/WebServiceTest.asmx"
var url:URL!
var arrTable = [[String:AnyObject]]()
func getTableDataFromWeb(){
strURL = webDomain + "/SearchNonMemberByRangeLatitude=25.062047&Longitude=121.495241&Range=300"
url = URL(string: strURL)
let request = URLRequest(url: URL(string: strURL)!)
let loginTask = URLSession.shared.dataTask(with: request, completionHandler: { (data, response, error) in guard
let data = data, let _ = response , error == nil else {
print("error")
return
}
do{
let arrayJSON = try JSONSerialization.jsonObject(with: data,options: .allowFragments)as! Dictionary<String, AnyObject>
self.arrTable = [arrayJSON]
print(self.arrTable)
}catch let error as NSError { print("json error: \(error.localizedDescription)") }
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
})
})
print("Web:\(strURL)")
loginTask.resume()
}

here is the Json data

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://192.xxx.xx.xx:8081/WebServiceTest.asmx">[
[
{
"NonCID": "n10909",
"Name": "xxx",
"ClassType": "xxx",
"City": "xxx",
"Area": "xxx",
"Address": "xxx",
"TelArea": "xx",
"Tel": "2xxxxx56",
"Latitude": 2x.x047,
"Longitude": 1xx.495241
},

]</string>

I also try XMlParse is work but get the data like this

Getting tag:string
Tag detail:["["]
Tag detail:["\n {"]
Tag detail:["\n \"NonCID\": \"n10909\","]
Tag detail:["\n \"Name\": \""]
Tag detail:["1111\",\n \"ClassType\": \"2222\",\n \"City\": \"111\",\n \"Area\": \"111\",\n \"Address\": \"11111\",\n \"TelArea\": \"02\",\n \"Tel\": \"29857456\",\n \"Latitude\": xx.062047,\n \"Longitude\": 1xx.495241\n },\n {\n \"NonCID\": \"n10957\",\n \"Name\": \"xxx"]
Tag detail:["\",\n \"ClassType\": \"xx\",\n \"City\": \"xxx\",\n \"Area\": \"xxx\",\n \"Address\": \"xxxxx\",\n \"TelArea\": \"02\" }\n]"]

Here is code

var tagName = String()
var tagContent = String()
func getTableDataFromWeb()
{
strURL = webDomain + "/SearchNonMemberByRange?Latitude=2x.&Longitude=1xx.4x241&Range=300"
url = URL(string: strURL)!
dataTask = session.dataTask(with: url) { (xmldata, response, error)
-> Void in
if xmldata == nil {
print("dataTaskWithRequest error: \(error)")
return
}
let xmlParser = XMLParser(data: xmldata!)
xmlParser.delegate = self
xmlParser.parse()
print("Web:\(strURL)")
dataTask.resume()
}
}
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String])
{
if elementName == "NonCID"{
tagName = elementName}
print("Getting Tag:\(elementName)")
}
func parser(_ parser: XMLParser, foundCharacters string: String)
{
tagContent = string
arr = [tagContent]
print("Tag Detail:\(arr)")
}
func parserDidEndDocument(_ parser: XMLParser)
{
DispatchQueue.main.async { () -> Void in
self.tableView.reloadData()
}
}

有人可以告诉我应该使用 Json 数据吗,谢谢。

最佳答案

您的数据是 XML。碰巧 XML 文件中的 XML 元素之一的文本值是 JSON。因此,您需要 XML 解析代码来提取 JSON 文本。然后您需要对提取的 JSON 使用 JSONSerialization

关于json - SWIFT 3 如何从本地主机 Web 服务连接 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40353417/

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