如何从带有 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 服务

IOS上的xmlhttprequest不发送请求?

如何避免在带有 Swift 4 的 iOS 11 中使用带有刷新控件的 @objc?

如何使用 DataContractSerializer 从文件中反序列化 WCF 肥皂响应消息?

带有 PHP 的 Jira 肥皂