如何从带有 ios Swift 3 的肥皂 Web 服务方法中获取 json 数组字符串?
Posted
技术标签:
【中文标题】如何从带有 ios Swift 3 的肥皂 Web 服务方法中获取 json 数组字符串?【英文标题】:How can i get json array string from a soap web service method with ios Swift 3? 【发布时间】:2017-07-11 13:15:11 【问题描述】:如何使用 swift 3 为我的 ios 应用程序获取以下数据?
<string xmlns="http://tempuri.org/">
[ "Hotel_id": 1, "Hotel_Name": "Sherwood Breezes Resort", "Company_id": 1 , "Hotel_id": 2, "Hotel_Name": "Sherwood Dreams Resort", "Company_id": 1 , "Hotel_id": 3, "Hotel_Name": "TUI Sensimar Resort", "Company_id": 1 , "Hotel_id": 4, "Hotel_Name": "Sherwood Greenwood Resort", "Company_id": 1 , "Hotel_id": 5, "Hotel_Name": "Sherwood Club Kemer", "Company_id": 1 , "Hotel_id": 6, "Hotel_Name": "Sherwood Prize Hotel", "Company_id": 1 ]
</string>
我需要将这些数据作为一个 json 数组获取并转换为一个数组。
【问题讨论】:
这是返回字符串?为什么它被html标签包围 使用(NS)XMLParser
检索标签内的 JSON。然后使用(NS)JSONSerialization
检索您的字典数组。
你能举个例子作为回答如何做到这一点吗?
Famming Ning 是的,这是一个返回字符串,我不知道你的问题,但我在我的 android 应用程序中使用了带有 ksoap2 的 web 方法,它工作正常。除非我不知道如何在 ios 端使用它
【参考方案1】:
首先需要去掉字符串中的html标签,只需要json部分。
let yourString = yourString .replacingOccurrences(of: "<[^>]+>", with: "", options: String.CompareOptions.regularExpression, range: nil)
然后将其解析为 JSON。不要忘记处理展开
let data = yourString.data(using: .utf8)
do
let jsonArray = try JSONSerialization.jsonObject(with: data!, options: []) as? [Any]
//You can start looping though the array from this point.
let firstHotel = jsonArray?[0] as? [String: Any]
let Hotel_id = firstHotel?["Hotel_id"] as? Int
let Hotel_Name = firstHotel?["Hotel_Name"] as? String
let Company_id = firstHotel?["Company_id"] as? Int
catch let error
【讨论】:
好的,谢谢方明宁,我得到了那个部分,但我无法快速得到这个返回字符串,这是我的主要问题。我怎样才能快速得到这个字符串?如何进行soap web servise连接并将参数发送到webmethod? @arzucaki url和参数是什么?以上是关于如何从带有 ios Swift 3 的肥皂 Web 服务方法中获取 json 数组字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 3 iOS10 为 MPMediaPickerControllerDelegate 呈现带有视图控制器的音乐库?
将图像从 ios swift 3 上传到 jsp Web 服务
如何避免在带有 Swift 4 的 iOS 11 中使用带有刷新控件的 @objc?